Rust-defined · local-first · debuggable

Build like it is one program, even when it runs everywhere.

Clusterflux runs a Rust-defined workflow as one distributed virtual process. The async main runs serverless, provisioning nodes to run tasks through rootless containers. Tasks on nodes exchange data simply and efficiently.

See how it works
build.rs
#[clusterflux::main]
async fn main() -> Result<()> {
    let linux = compile(Target::Linux).await?;
    let windows = compile(Target::Windows).await?;

    publish([linux, windows]).await
}

compile and publish are ordinary helper functions that spawn Clusterflux tasks.

A regular-program experience

Distributed work without a pipeline language

01

Your hardware first

Attach existing machines in one command. Bulk data normally stays on the local network for maximum throughput.

02

One virtual process

Rust async control flow replaces disconnected job graphs. Task identity, retries, output, and artifacts remain joined.

03

Debug it normally

Use the included VS Code extension and debugger adapter to inspect, pause, continue, and restart distributed tasks.

From zero to a real build

Start with Getting started.

It takes you through authentication, project setup, node enrollment, a run, debugging, task restart, and direct artifact interchange.

Read Getting started