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 エージェントやデータパイプラインに組み合わせたりできます。

仕組み

  1. スクリプトを書く — ブラウザベースのエディタ、または CLI/VS Code 拡張機能でローカルに書き、Git と同期します。
  2. Windmill がフロントエンドを生成 — スクリプトの型付き引数が自動的にフォーム、HTTP エンドポイント、CLI コマンドになります。
  3. スクリプトをフローに連結 — 視覚的またはコードとして、各ステップが独自のログを持つ独自のジョブとして実行されます。
  4. 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 支援と人間によるレビューが組み込まれています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト