Install and build
ArcFlow ships two in-process SDKs (Python and TypeScript) that bind to the same Rust engine (arcflow-core). Both packages aim for zero runtime dependencies beyond what the native extension needs. Python builds the extension with maturin from source in this repository. TypeScript can be installed from npm with a prebuilt native binary, or built locally with cargo and npm.
Prerequisites
| Requirement | Python SDK | TypeScript SDK |
|---|---|---|
| Python 3.9+ | Required | Not used |
| Node.js 18+ | Not used | Required |
Rust toolchain (rustup) | Required for source build | Required for local native build |
| Docker (optional) | Memory backends, server quickstart | Same |
Install Rust from https://rustup.rs. On Windows, use the MSVC toolchain and ensure Visual Studio Build Tools are present so native crates compile.
Python SDK (maturin / pip)
From the repository root, build and install the extension in editable mode:
macOS and Linux
The commands above work unchanged on macOS and Linux. Use a virtual environment if your system Python is managed (recommended):
Windows (PowerShell)
If maturin develop fails with a linker error, confirm the Rust MSVC target is installed (rustup default stable-msvc on Windows).
Verify Python installation
This command imports the package and runs a one-step workflow without any API keys:
Expected output includes a line like arcflow python ok followed by a UUID. If import fails, re-run maturin develop from sdk-python/ with the same virtual environment activated.
TypeScript SDK (npm)
Published package
For application projects outside this monorepo:
The published tarball includes a prebuilt .node binary for common platforms. No separate cargo step is required.
Local development (this repository)
npm run build compiles the native binding (cargo build --release -p arcflow-node) and TypeScript sources (tsc).
macOS and Linux
After npm run build, run tests to confirm the native module loads:
Windows
Use the same npm install and npm run build sequence. If the native build fails, verify Rust MSVC and that no antivirus is locking target/release/ artifacts.
Verify TypeScript installation
From sdk-typescript/ after a local build:
In a consumer project that installed from npm, replace the import path with 'arcflow'.
What you have after install
Both SDKs delegate execution to the Rust runtime. Python and TypeScript only declare workflow structure (agents, steps, optional tools and memory). The default agent implementation requires no LLM API key for the verification commands above or for First workflow in five minutes.
Optional backends (PostgreSQL for persistent memory and recovery, Qdrant for vector memory) start with Docker:
Embedded SDK runs do not require Postgres unless you enable recovery or registry features.
Next steps
| Goal | Document |
|---|---|
| Full curriculum (recommended) | Getting started README |
| Fastest first run (Python, no API key) | First workflow in five minutes |
| Python with optional OpenAI | Python quickstart |
| TypeScript with optional OpenAI | TypeScript quickstart |
| HTTP integration | Server API quickstart |
| Public website chat widget | Static site chatbot |