# Windmill

> Scripts in ten languages, composed into flows by a Rust engine

Windmill is an open-source workflow engine and developer platform written in Rust: individual scripts in TypeScript, Python, Go, SQL, Bash and more become reusable runnables, which compose into flows through a low-code builder or YAML, and into internal apps on top.

Website: https://www.windmill.dev

## Use it when

- The unit of work is a script, not a DAG: TypeScript, Python, Go, SQL, Bash, and more become runnables with generated UIs, composed into flows.
- Many small, latency-sensitive steps dominate; the Rust engine's instant starts are the pitch against the Python-framework orchestrators.
- Internal tools and pipelines should share a platform; the app builder sits on the same runnables.
- Webhooks and HTTP routes should exist automatically for every script and flow.

## Think twice when

- Free must mean unlimited: the self-hosted free tier caps workspaces, users, and SSO, and event triggers like Kafka and SQS sit behind Enterprise.
- AGPL-3.0 on the engine concerns your legal team.
- You want a data orchestrator's vocabulary: assets, lineage, and dbt-centric workflows; Dagster is built around those.

## How it runs

Self-hosted or cloud: a Rust engine queues jobs to a worker fleet routed by tags, scripts run in their language runtimes or Docker images, and step results pass as JSON with S3, Azure Blob, or GCS integration for large objects. Cron, webhooks, and HTTP routes trigger runs. Enterprise starts at $120 a month; cloud is priced per seat plus compute.

## Details

### General

| Attribute | Value |
| --- | --- |
| License | Open source (copyleft) |
| SPDX identifier | AGPL-3.0 |
| Deployment | Self-hosted, Managed |
| Workload | Batch |
| Operational complexity | Medium |
| Pricing | Free, Subscription |
| Language | Rust |
| Repository | https://github.com/windmill-labs/windmill |
| Documentation | https://www.windmill.dev/docs/intro |
| Stars | 18k |

### Workflow Orchestration

| Attribute | Value |
| --- | --- |
| Authoring model | Polyglot scripts (TypeScript, Python, Go, Bash, SQL, Java and more) composed into flows by a low-code builder or YAML |
| Task languages | The widest list here: TypeScript on Deno, Bun or Node, Python, Go, PHP, Rust, C#, Java, Ruby, R, Bash, PowerShell, Nu, Ansible, dbt, REST and GraphQL, and SQL against Postgres, MySQL, MS SQL, BigQuery and Snowflake; a Docker script covers anything left |
| Unit of work | A script (one runnable in one language) chained into flows as steps through a drag-and-drop builder over the OpenFlow spec, which is Apache-2.0 while the engine running it is AGPL; apps are the third kind of runnable |
| Passing data | A step's result becomes the next step's input as JSON, with states and custom flow states holding small transient payloads and a shared directory passing files between steps on one worker, ephemeral to a single run. The docs are blunt that none of it is a general-purpose persistence layer, large objects belong in the native S3, Azure Blob or GCS integration |
| Triggers | Cron schedules, an auto-generated webhook on every script and flow, custom HTTP routes, WebSocket, MQTT and Postgres; the pricing page puts Kafka, NATS, SQS, GCP Pub/Sub and Azure Event Grid behind Enterprise, and caps email triggers at 100 a day on the free plan |
| Connectors | 200+ resource types on the Hub, a resource being a JSON object of connection details validated by a JSON-Schema type, so the integration is a credential shape rather than code; verified types sync into new instances and anything missing is a custom type |
| Where tasks run | A fleet of workers pulling one job at a time from a queue, routed by worker-group tags |
| Delivery guarantee | A worker claims a job from the queue and marks it running before executing |
| Caching and reruns | A TTL in seconds set on a script, a whole flow, a single flow step or an app inline script; a rerun with identical inputs inside the window returns the stored result rather than executing |
| Billing unit | Seats and compute together: $20 a developer, $10 an operator, $50 a month per standard worker, Enterprise starting at $120 a month. The free tier runs unlimited executions inside hard caps instead: 3 workspaces, 50 users, 10 of them with SSO, 10 GiB of object storage and 30 days of run history |

## Capabilities

- [Workflow Orchestration](https://matca.io/capabilities/workflow-orchestration)

---

Source: https://matca.io/windmill
Last updated: 2026-08-31T11:40:47.390Z
