Windmill.dev is an OSS developer platform to quickly build production-grade multi-steps automations and internal apps from minimal Python and Typescript scripts.
Join the alpha (personal workspaces are free forever): https://alpha.windmill.dev
Documentation: https://docs.windmill.dev
Discord: https://discord.gg/V7PM2YHsPB
We are hiring: Software Engineers, DevOps, Solutions Engineers, Growth: https://docs.windmill.dev/hiring
You can show your support for the project by starring this repo.
Windmill
Disclaimer: Windmill is in BETA. It is secure to run in production but the API might change, especially concerning flows.
Windmill is fully open-sourced:
community/andpython-client/are Apache 2.0- backend, frontend and everything else under AGPLv3.
Layout
backend/: The whole Rust backendfrontend: The whole Svelte frontencommunity/: Scripts and resource types created and curated by the community, included in every workspacelsp/: The lsp asssistant for the monaco editornsjail/: The nsjail configuration files for sandboxing of the scripts' executionpython-client/: The wmill python client used within scripts to interact with the windmill platform
Stack
- postgres as the database
- backend in Rust with the follwing highly-available and horizontally scalable
architecture:
- stateless API backend
- workers that pull jobs from a queue
- frontend in svelte
- scripts executions are sandboxed using google's nsjail
- javascript runtime is deno_core rust library (which itself uses the rusty_v8 and hence V8 underneath)
- typescript runtime is deno
- python runtime is python3
Development stack
- caddy is the reverse proxy used for local development, see frontend's Caddyfile and CaddyfileRemote
Architecture
How to self-host
Complete instructions coming soon
Copyright
2021 Ruben Fiszel
Acknowledgement
This project is inspired from a previous project called Delightool which was also led by Ruben and with large contribution on the frontend from Malo Marrec who gave his blessing to Windmill.
