Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rust language #711

Merged
merged 3 commits into from
Sep 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion blog/2023-08-10-supabase-partnership/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ This week, Supabase is celebrating their [8th Launch Week](https://supabase.com/

## Windmill for internal tools

Windmill is an [open-source](https://github.com/windmill-labs/windmill), blazing fast and scalable alternative to Retool, Airplane, Superblocks, n8n, Airflow, Prefect, Temporal to build all your internal tools (endpoints, workflows, UIs) through the combination of code (in TypeScript, Python, Go, PHP, Bash, SQL or any docker image) and low code builders. It embeds all-in-one:
Windmill is an [open-source](https://github.com/windmill-labs/windmill), blazing fast and scalable alternative to Retool, Airplane, Superblocks, n8n, Airflow, Prefect, Temporal to build all your internal tools (endpoints, workflows, UIs) through the combination of code (in TypeScript, Python, Go, PHP, Bash, SQL and Rust or any docker image) and low code builders. It embeds all-in-one:

- an **execution runtime** to execute functions at scale with low-latency and no overhead on a fleet of workers
- an **orchestrator** to compose functions into powerful flows at low-latency built with a low-code builder (or yaml if that's your thing)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ In Windmill, there are 3 main ways of doing data passing:

- every input of a step can be a javascript expression that can refer to any step outputs

Every script in typescript, python, go, bash has their main signature parsed (by a WASM program in the frontend) which allows to pre-compute the different inputs needed for a given step.
Every script in TypeScript, Python, Go, Bash, SQL, Rust has their main signature parsed (by a WASM program in the frontend) which allows to pre-compute the different inputs needed for a given step.
For each of those inputs, one can define either a static input or a javascript expression that can refer to the result of any step. e.g: `results.d.foo` where `d` is the id of the step.
That javascript expression when complex is evaluated by an embedded v8 using deno runtime. It takes ~8ms by expression.

Expand Down
2 changes: 1 addition & 1 deletion blog/2023-12-27-bash-script-arguments/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,6 @@ For [Bash scripts in Windmill](/docs/getting_started/scripts_quickstart/bash#cod

<br/>

Windmill is an open-source developer platform and workflow engine to build internal tools. It helps you transform scripts into auto-generated UIs, APIs and cron jobs. Windmill also supports coding in TypeScript, Python, Go, PHP, Bash, SQL, or any Docker image.
Windmill is an open-source developer platform and workflow engine to build internal tools. It helps you transform scripts into auto-generated UIs, APIs and cron jobs. Windmill also supports coding in TypeScript, Python, Go, PHP, Bash, SQL and Rust, or any Docker image.

To explore Windmill and make your shell scripts user-friendly for your team, even those unfamiliar with the command line, refer to the [documentation](https://www.windmill.dev/docs/).
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ This command gets the YAML statement of currently running pods and pipes the out

In this guide, we've introduced you to Kubernetes pods and why you might need to restart them. Generally, the most recommended way to ensure no application downtime is to use `kubectl rollout restart deployment <deployment_name> -n <namespace>`.

Windmill is an [open-source](https://github.com/windmill-labs/windmill) developer platform and workflow engine to build internal tools. It can turn scripts into auto-generated UIs, APIs, and cron jobs. It supports coding in TypeScript, Python, Go, PHP, Bash, SQL, or any Docker image. You can [self-host](/docs/advanced/self_host) Windmill within your own environment.
Windmill is an [open-source](https://github.com/windmill-labs/windmill) developer platform and workflow engine to build internal tools. It can turn scripts into auto-generated UIs, APIs, and cron jobs. It supports coding in TypeScript, Python, Go, PHP, Bash, SQL and Rust, or any Docker image. You can [self-host](/docs/advanced/self_host) Windmill within your own environment.

Windmill runs on Kubernetes and [workers](/docs/core_concepts/worker_groups) can be easily scaled up and down to meet performance needs.

Expand Down
2 changes: 1 addition & 1 deletion blog/2024-04-18-useful-python-scripts/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ In this blog post, we will explore ten Python scripts that stand out due to thei

## Use Windmill to create, run and monitor Python Scripts

Windmill is an open-source developer platform and workflow engine designed to build comprehensive internal tools (endpoints, workflows, UIs). It supports coding in TypeScript, Python, Go, PHP, Bash, SQL, or any Docker image, alongside intuitive low-code builders, including:
Windmill is an open-source developer platform and workflow engine designed to build comprehensive internal tools (endpoints, workflows, UIs). It supports coding in TypeScript, Python, Go, PHP, Bash, SQL and Rust, or any Docker image, alongside intuitive low-code builders, including:

- An [execution runtime](/docs/script_editor) for scalable, low-latency function execution across a worker fleet.
- An [orchestrator](/docs/flows/flow_editor) for assembling these functions into efficient, low-latency flows, using either a low-code builder or YAML.
Expand Down
2 changes: 1 addition & 1 deletion blog/2024-06-28-edit-crontab/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ In addition to scripts and flows, Windmill also allows [scheduling of app report

## What is Windmill?

Windmill is a fast, [open-source](https://github.com/windmill-labs/windmill) workflow engine and developer platform. It's an alternative to the likes of Retool, Superblocks, n8n, Airflow, Prefect, and Temporal, designed to **build comprehensive internal tools** (endpoints, workflows, UIs). It supports coding in TypeScript, Python, Go, PHP, Bash, SQL, or any Docker image, alongside intuitive low-code builders, featuring:
Windmill is a fast, [open-source](https://github.com/windmill-labs/windmill) workflow engine and developer platform. It's an alternative to the likes of Retool, Superblocks, n8n, Airflow, Prefect, and Temporal, designed to **build comprehensive internal tools** (endpoints, workflows, UIs). It supports coding in TypeScript, Python, Go, PHP, Bash, SQL and Rust, or any Docker image, alongside intuitive low-code builders, featuring:

- An [execution runtime](/docs/script_editor) for scalable, low-latency function execution across a worker fleet.
- An [orchestrator](/docs/flows/flow_editor) for assembling these functions into efficient, low-latency flows, using either a low-code builder or YAML.
Expand Down
4 changes: 2 additions & 2 deletions blog/2024-07-12-airflow-alternatives/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -134,14 +134,14 @@ Asked if it's an orchestrator, Kedro replies:

### Windmill

Windmill is an [open-source](https://github.com/windmill-labs/windmill) workflow engine and developer platform designed to build internal tools, including endpoints, workflows, and UIs. It supports coding in [multiple languages](/docs/getting_started/scripts_quickstart) such as TypeScript, Python, Go, Bash, SQL, or any Docker image, alongside low-code builders.
Windmill is an [open-source](https://github.com/windmill-labs/windmill) workflow engine and developer platform designed to build internal tools, including endpoints, workflows, and UIs. It supports coding in [multiple languages](/docs/getting_started/scripts_quickstart) such as TypeScript, Python, Go, Bash, SQL, Rust or any Docker image, alongside low-code builders.

Windmill was designed by developers for developers, ranging from semi-technical (low code builders) to senior/staff software engineers with high standards for production-grade yet flexible and customizable with code. Windmill was built to address the challenge of turning high-value code containing business logic, data transformation, and internal API calls into scalable microservices and tools without the usual heavy lifting.

On the other hand, the support of [Python](/docs/getting_started/scripts_quickstart/python) as a primary language and the integration of a workspace with [object storage](/docs/core_concepts/object_storage_in_windmill) (in particular, S3) make Windmill an excellent fit for data engineers, particularly for building [data pipelines](/docs/core_concepts/data_pipelines).

Windmill has three editors (or products), all compatible, each independently functioning:
1. The [Script Editor](/docs/script_editor) is an integrated development environment that allows you to write code in various languages like TypeScript, Python, Go, Bash, SQL, or even run any Docker container through Windmill's Bash support.
1. The [Script Editor](/docs/script_editor) is an integrated development environment that allows you to write code in various languages like TypeScript, Python, Go, Bash, SQL, Rust or even run any Docker container through Windmill's Bash support.
2. The [Flow Editor](/docs/flows/flow_editor) is a low-code builder that enables you to create workflows represented as directed acyclic graphs (DAGs), orchestrating the execution of steps across different workers while respecting dependency constraints.
3. The [App Editor](/docs/apps/app_editor) is a tool for creating customized, user interfaces using a drag-and-drop editor, allowing you to build data-centric dashboards.

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 14 additions & 0 deletions changelog/2024-08-30-rust-support/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
slug: rust-support
version: v1.388.0
title: Rust Support
tags: ['Rust', 'Code Editor']
description: Windmill now supports Rust scripts.
features:
[
'Write your Windmill script in Rust.',
'Run your Rust scripts locally or in the cloud.',
]
image: ./editor_rust.png
docs: /docs/getting_started/scripts_quickstart/rust
---
4 changes: 2 additions & 2 deletions docs/code_editor/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Code Editor in [Apps](../apps/0_app_editor/index.mdx):
<div className="grid grid-cols-2 gap-6 mb-4">
<DocCard
title="Script Editor"
description="Scripts are the basic building blocks that can be written in TypeScript, Python, Go, PHP, Bash, SQL or launch docker containers."
description="Scripts are the basic building blocks that can be written in TypeScript, Python, Go, PHP, Bash, SQL and Rust or launch docker containers."
href="/docs/script_editor"
/>
<DocCard
Expand Down Expand Up @@ -68,7 +68,7 @@ For more features on code in Windmill, see [Script Editor](../script_editor/inde
<div className="grid grid-cols-2 gap-6 mb-4">
<DocCard
title="Script Editor"
description="Scripts are the basic building blocks that can be written in TypeScript, Python, Go, PHP, Bash, SQL or launch docker containers."
description="Scripts are the basic building blocks that can be written in TypeScript, Python, Go, PHP, Bash, SQL and Rust or launch docker containers."
href="/docs/script_editor"
/>
</div>
2 changes: 1 addition & 1 deletion docs/compared_to/prefect.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,7 @@ The [script editor](../script_editor/index.mdx) allows users to build long-runni
<div className="grid grid-cols-2 gap-6 mb-4">
<DocCard
title="Scripts Quickstart"
description="Scripts are the basic building blocks that can be written in TypeScript, Python, Go, PHP, Bash, SQL or launch docker containers."
description="Scripts are the basic building blocks that can be written in TypeScript, Python, Go, PHP, Bash, SQL and Rust or launch docker containers."
href="/docs/getting_started/scripts_quickstart"
/>
</div>
Expand Down
2 changes: 1 addition & 1 deletion docs/compared_to/retool.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ executable through [autogenerated UIs](../core_concepts/6_auto_generated_uis/ind
<div className="grid grid-cols-2 gap-6 mb-4">
<DocCard
title="Windmill Scripts"
description="Scripts are the basic building blocks that can be written in TypeScript, Python, Go, PHP, Bash, SQL or launch docker containers."
description="Scripts are the basic building blocks that can be written in TypeScript, Python, Go, PHP, Bash, SQL and Rust or launch docker containers."
href="/docs/script_editor"
/>
<DocCard
Expand Down
2 changes: 1 addition & 1 deletion docs/core_concepts/1_scheduling/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Windmill addresses these issues with schedules that can be defined with pre-set

:::info A bit of Context: How Windmill Works

[Windmill](../../intro.mdx) is an open-source developer platform and infra to build all internal tools through code, such as UIs and workflows based on simple scripts (TypeScript, Python, Go, PHP, Bash, SQL).
[Windmill](../../intro.mdx) is an open-source developer platform and infra to build all internal tools through code, such as UIs and workflows based on simple scripts (TypeScript, Python, Go, PHP, Bash, SQL and Rust).

<br />

Expand Down
2 changes: 1 addition & 1 deletion docs/core_concepts/23_instant_preview/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ The right margin of the script editor displays:
<div className="grid grid-cols-2 gap-6 mb-4">
<DocCard
title="Script Editor"
description="Scripts are the basic building blocks that can be written in TypeScript, Python, Go, PHP, Bash, SQL or launch docker containers."
description="Scripts are the basic building blocks that can be written in TypeScript, Python, Go, PHP, Bash, SQL and Rust or launch docker containers."
href="/docs/script_editor"
/>
</div>
Expand Down
2 changes: 1 addition & 1 deletion docs/getting_started/00_how_to_use_windmill/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import DocCard from '@site/src/components/DocCard';

# Getting Started with Windmill

Windmill is a fast, **<a href="https://github.com/windmill-labs/windmill">open-source</a>** workflow engine and developer platform. It's an alternative to the likes of Retool, Superblocks, n8n, Airflow, Prefect, and Temporal, designed to **build comprehensive internal tools** (endpoints, workflows, UIs). It supports coding in TypeScript, Python, Go, PHP, Bash, SQL, or any Docker image, alongside intuitive low-code builders.
Windmill is a fast, **<a href="https://github.com/windmill-labs/windmill">open-source</a>** workflow engine and developer platform. It's an alternative to the likes of Retool, Superblocks, n8n, Airflow, Prefect, and Temporal, designed to **build comprehensive internal tools** (endpoints, workflows, UIs). It supports coding in TypeScript, Python, Go, PHP, Bash, SQL and Rust, or any Docker image, alongside intuitive low-code builders.

## Choose Your Setup

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ Scripts consist of 2 parts:
- [Code](#code): for Python scripts, it must have at least a main function.
- [Settings](#settings): settings & metadata about the Script such as its path, summary, description, [jsonschema](../../../core_concepts/13_json_schema_and_parsing/index.mdx) of its inputs (inferred from its signature).

When stored in a code repository, these 2 parts are stored separately at `<path>.ts` and `<path>.script.yaml`
When stored in a code repository, these 2 parts are stored separately at `<path>.py` and `<path>.script.yaml`

Windmill automatically manages [dependencies](../../../advanced/15_dependencies_in_python/index.mdx) for you. When you import libraries in your Python script, Windmill parses these imports upon saving the script and automatically generates a list of dependencies. It then spawns a dependency job to associate these PyPi packages with a lockfile, ensuring that the same version of the script is always executed with the same versions of its dependencies.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ Scripts consist of 2 parts:
- [Code](#code): for Go scripts, it must have at least a main function.
- [Settings](#settings): settings & metadata about the Script such as its path, summary, description, [jsonschema](../../../core_concepts/13_json_schema_and_parsing/index.mdx) of its inputs (inferred from its signature).

When stored in a code repository, those 2 parts are stored separately at `<path>.ts` and `<path>.script.yaml`.
When stored in a code repository, those 2 parts are stored separately at `<path>.go` and `<path>.script.yaml`.

Below is a simple example of a script built in Go with Windmill:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ Scripts consist of 2 parts:
- [Code](#code).
- [Settings](#settings): settings & metadata about the Script such as its path, summary, description, [jsonschema](../../../core_concepts/13_json_schema_and_parsing/index.mdx) of its inputs (inferred from its signature).

When stored in a code repository, those 2 parts are stored separately at `<path>.ts` and `<path>.script.yaml`.
When stored in a code repository, those 2 parts are stored separately at `<path>.sh` and `<path>.script.yaml`.

Below is a simple example of a script built in Bash/Powershell with Windmill:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ Scripts consist of 2 parts:
- [Code](#code).
- [Settings](#settings): settings & metadata about the Script such as its path, summary, description, [jsonschema](../../../core_concepts/13_json_schema_and_parsing/index.mdx) of its inputs (inferred from its signature).

When stored in a code repository, those 2 parts are stored separately at `<path>.ts` and `<path>.script.yaml`.
When stored in a code repository, those 2 parts are stored separately at `<path>.rest` and `<path>.script.yaml`.

Below is a simple example of a script built in Rest with Windmill:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ Scripts consist of 2 parts:
- [Code](#code).
- [Settings](#settings): settings & metadata about the Script such as its path, summary, description, [jsonschema](../../../core_concepts/13_json_schema_and_parsing/index.mdx) of its inputs (inferred from its signature).

When stored in a code repository, those 2 parts are stored separately at `<path>.ts` and `<path>.script.yaml`.
When stored in a code repository, those 2 parts are stored separately at `<path>.docker` and `<path>.script.yaml`.

Below is a simple example of a script built using Bash to run Docker containers from Windmill:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Scripts consist of 2 parts:
- [Code](#code): for php scripts, it must have at least a main function.
- [Settings](#settings): settings & metadata about the Script such as its path, summary, description, [jsonschema](../../../core_concepts/13_json_schema_and_parsing/index.mdx) of its inputs (inferred from its signature).

When stored in a code repository, these 2 parts are stored separately at `<path>.ts` and `<path>.script.yaml`
When stored in a code repository, these 2 parts are stored separately at `<path>.php` and `<path>.script.yaml`

Windmill automatically manages [dependencies](../../../advanced/6_imports/index.mdx) for you. When you import libraries in your php script, Windmill parses these imports upon saving the script and automatically generates a list of dependencies. It then spawns a dependency job to associate these PyPi packages with a lockfile, ensuring that the same version of the script is always executed with the same versions of its dependencies.

Expand Down Expand Up @@ -92,7 +92,7 @@ This menu also has additional settings, such as:
- **[Concurrency limits](../../../script_editor/concurrency_limit.mdx)** enable defining concurrency limits for scripts and inline scripts within flows to prevent exceeding the API Limit of the targeted API.
- **[Worker group tag](../../../core_concepts/9_worker_groups/index.mdx)** to assign scripts to specific worker groups (such as nodes with GPU accelaration).
- **[Cache](../../../core_concepts/24_caching/index.md)** to cache the results for each possible inputs for a given time.
- **[Dedicated Workers](../../../core_concepts/25_dedicated_workers/index.mdx)** to run the script on, to run the script at native speed. Only available on [Cloud plans and Self-Hosted Enterprise edition](/pricing) and with php and TypeScript.
- **[Dedicated Workers](../../../core_concepts/25_dedicated_workers/index.mdx)** to run the script on, to run the script at native speed. Only available on [Cloud plans and Self-Hosted Enterprise edition](/pricing) and with Python and TypeScript.

<div className="grid grid-cols-2 gap-6 mb-4">
<DocCard
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading