windmill-labs/windmill
Code-first platform for workflows, apps and AI agents, on the fastest self-hostable orchestrator (benchmarked against Airflow, Prefect and Temporal). Business teams build with AI, engineers control what ships. Open-source alternative to Lovable, Retool and n8n.
Windmill とは?
Windmill は、自分でホストするオープンソースプラットフォームで、コードを書くことでワークフロー、Web アプリ、AI エージェントを構築できます。Retool や n8n などのツールのセルフホスト可能な代替品、および簡素化された Temporal として説明されています。
中核となるアイデア:スクリプトがすべてになる
Python、TypeScript、Go、Bash などの言語で、小さく焦点を絞ったスクリプト(単純な関数)を記述します。Windmill はそのスクリプトを自動的に以下に変換します:
- 共有可能な UI(スクリプトのパラメータから生成された Web フォーム)
- API エンドポイント
- cron ジョブ(スケジュールされたタスク)
- CLI コマンド
スクリプトをフロー(ワークフロー)に連結したり、その上にフルコードの React または Svelte アプリを構築したり、AI エージェントやデータパイプラインに組み合わせたりできます。
仕組み
- スクリプトを書く — ブラウザベースのエディタ、または CLI/VS Code 拡張機能でローカルに書き、Git と同期します。
- Windmill がフロントエンドを生成 — スクリプトの型付き引数が自動的にフォーム、HTTP エンドポイント、CLI コマンドになります。
- スクリプトをフローに連結 — 視覚的またはコードとして、各ステップが独自のログを持つ独自のジョブとして実行されます。
- UI を構築 — スクリプトとフローの上に。
ガードレール付き AI
ビジネスチームとエンジニアが同じインスタンスで作業します。AI セッションにより、非エンジニアはワークスペースフォークでスクリプト、フロー、アプリを構築でき、ライブプレビューとデプロイ前にレビューする差分が提供されます。保護ルールセットは直接デプロイをブロックできるため、変更はエンジニアのレビュー後にのみ本番環境に到達します。AI 構築コードは、独自のワーカグループまたは別のインスタンスで実行されます。
データ処理
- データテーブル — 各ワークスペースは管理された Postgres テーブルを取得し、接続文字列を公開せずに型チェックされた SQL でクエリできます。
- DuckDB — スクリプトは S3/Azure ファイル(CSV、Parquet、JSON)、データテーブル、Postgres、MySQL、BigQuery を SQL でクエリできます。
- DuckLake — 大規模データセットをワークスペースオブジェクトストレージのレイクハウステーブルとして保存し、プレーン SQL でクエリします。
- パイプライン(アルファ)— 手動で DAG を描く代わりに、スクリプトが読み書きするデータでスクリプトを接続します。
技術スタック
- データベース:PostgreSQL(Aurora、Cloud SQL、Neon、Azure PostgreSQL と互換性あり)
- バックエンド:Rust — ステートレスな API サーバーとワーカーが Postgres キューからジョブを取得
- フロントエンド:Svelte 5
- サンドボックス:nsjail と PID 名前空間分離
- ランタイム:Bun(TypeScript/JavaScript)、uv 付き Python、および Go、Bash、PowerShell、Rust、C#、Java、Ansible など
パフォーマンス
Windmill は最速のセルフホスト可能なワークフローエンジンであると主張し、ベンチマーク(40 の軽量タスクと 10 の長時間実行タスクの両方)で Airflow、Prefect、Temporal を上回っています。ジョブが開始されると、スクリプトを直接実行する場合と比べてオーバーヘッドはありません。キューイングと結果報告の追加レイテンシは約 50 ミリ秒です。
セキュリティ
- サンドボックス:nsjail によるファイルシステム/リソース分離、および PID 名前空間分離により、ジョブがワーカープロセスのメモリにアクセスするのを防ぎます。
- シークレット:保存された資格情報用にワークスペースごとに 1 つの暗号化キー。
セルフホスティング
- Docker compose — 3 つのファイル、1 つのコマンド:
docker compose up -d - Kubernetes — Helm チャートが利用可能
- クラウドプロバイダー — AWS、GCP、Azure、Fly.io、Render.com、Hetzner、Digital Ocean などで動作。経験則:1 vCPU と 1〜2 GB RAM あたり 1 ワーカー。
- OAuth/SSO — スーパー管理者 UI から Google Workspace、Microsoft/Azure、Okta を設定。
ライセンス
- コミュニティエディションは、設定された制限内で内部または API 経由で無料で使用できます。
- マネージドサービスとして販売/再販、変更/ラッピング、または製品の機能として再公開するには、商用ライセンスが必要です。
enterpriseフラグなしでビルドされたバイナリは AGPLv3 です。API クライアントと OpenAPI 仕様は Apache 2.0 です。
貢献
このプロジェクトは現在外部からの貢献を求めていませんが、バグ報告、機能リクエスト、小さな検証済み PR は歓迎します。
重要な事実
- スクリプトで 20 以上の言語をサポート
- スクリプトはスケジュール、Webhook、HTTP ルート、Kafka、WebSocket、メールなどでトリガー可能
- 既存の dbt プロジェクトは変更なしでスクリプトとして実行
- デフォルトの Docker 資格情報:
admin@windmill.dev/changeme - 活発なプロジェクト:高いコミット活動、Discord コミュニティ、コミュニティスクリプト共有用の Hub
要するに:関数を書けば、UI、API、スケジュール、ワークフローが手に入る — すべてセルフホストで、AI 支援と人間によるレビューが組み込まれています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト