Git Product home page Git Product logo

spread0x / windmill Goto Github PK

View Code? Open in Web Editor NEW

This project forked from windmill-labs/windmill

0.0 1.0 0.0 1.21 MB

Windmill.dev is an OSS developer platform to quickly build production-grade multi-steps automations and internal apps from minimal Python and Typescript scripts.

Home Page: https://windmill.dev

License: Other

Shell 0.44% Dockerfile 0.43% Rust 42.20% Python 3.32% JavaScript 0.37% CSS 0.42% HTML 0.05% TypeScript 1.81% Svelte 50.95%

windmill's Introduction

windmill.dev

Windmill.dev is an OSS developer platform to quickly build production-grade multi-steps automations and internal apps from minimal Python and Typescript scripts.

Package version Discord Shield


Join the alpha (personal workspaces are free forever): https://app.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 Screenshot

Windmill is fully open-sourced:

  • community/ and python-client/ are Apache 2.0
  • backend, frontend and everything else under AGPLv3.

What is the general idea behind Windmill

  1. Define a minimal and generic script in Python or Typescript that solve a specific task. Here sending an email with SMTP. The code can be defined in the provided Web IDE or synchronized with your own github repo: Step 1

  2. Your scripts parameters are automatically parsed and generate a frontend. You can narrow down the types during task definition to specify regex for string, an enum or a specific format for objects. Each script correspond to an app by itself: Step 2

  3. Make it flow! You can chain your scripts or scripts made by the community inside flow by piping output to input using "Dynamic" fields that are just plain Javascript. You can also refer to external variables, output from any steps or inputs of the flow itself. The flow parameters then generate automatically an intuitive forms that can be triggered by anyone, like for scripts. Step 3

Layout

  • backend/: The whole Rust backend
  • frontend: The whole Svelte frontend
  • community/: Scripts and resource types created and curated by the community, included in every workspace
  • lsp/: The lsp asssistant for the monaco editor
  • nsjail/: The nsjail configuration files for sandboxing of the scripts' execution
  • python-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

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.

windmill's People

Contributors

rubenfiszel avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.