Installation
Build from source
Section titled “Build from source”Nothing is published yet. The name pyrula is registered on PyPI as an empty
0.0.0 placeholder and the runtime packages are not there at all, so pip install
is not the install path today. Building from source is. You need Python 3.11
through 3.14, a Rust toolchain, and uv:
git clone https://github.com/pyrula-io/pyrulacd pyrulauv sync # resolves the packages from the workspaceuv run maturin develop --release # builds the Rust coreThe runtimes are separate distributions that only resolve from the workspace, which
is why this is uv sync and not a bare maturin develop. That one sync gives you
the core, the workflow and agent runtimes, and the pyrula CLI. The Kafka client
carries its own Rust extension and is built separately:
cd pyrula-kafka && uv run maturin develop --releaseCheck it:
uv run python -c "from pyrula.workflows import workflow; print('ok')"uv run pyrula --helpFrom here, the Quickstart scaffolds a workflow and
runs it. Prefix its commands with uv run while you are working out of the clone.
Packages, once published
Section titled “Packages, once published”Each runtime is a separate package that depends on the core, so you will install only what you use. This is the shape they ship in; none of these commands resolve yet.
| Package | Install | Import |
|---|---|---|
| Core | pip install pyrula | pyrula |
| Workflows | pip install pyrula-workflows | pyrula.workflows |
| Agents | pip install pyrula-agents | pyrula.agents |
| Kafka | pip install pyrula-kafka | pyrula.kafka |
| Cloud client | pip install pyrula-cloud-client | pyrula.cloud |
Installing any runtime pulls in pyrula. The cloud client needs no code. See
Connect to Pyrula Cloud.
pyrula dev, the local dev server and run browser, needs the web stack. It ships as
an extra so a worker or a pyrula db install does not carry it:
pip install "pyrula-workflows[ui]"pyrula-agents already depends on it, so the extra is only needed for workflows.
pip install 'pyrula[all]' will pull the workflow, agent, Kafka, and cloud-client
packages in one step.
Extras named elsewhere in these docs ([anthropic], [kafka], [otel],
[langchain], and the rest) describe the same published shape. Out of the source
checkout they are already resolved by uv sync, so there is nothing extra to install.
Requirements
Section titled “Requirements”Python 3.11 through 3.14, plus the Rust toolchain and uv the source build needs. Nothing else to try it: the Quickstart runs against an in-memory store with no broker, no API key, and no account.
For runs that outlive the process you need Valkey 7.4+ or Redis 7.0+. Event archival is optional and uses Postgres. Neither is required until you want durability across restarts.
Durability config
Section titled “Durability config”Workflows read their store and archival targets from the environment:
export PYRULA_VALKEY_URL=redis://localhost:6379export PYRULA_POSTGRES_DSN=postgresql://user:pass@localhost:5432/pyrula_eventsThe redis:// scheme covers both Valkey and Redis. Set PYRULA_VALKEY_NAMESPACE too if
several environments share one Valkey instance or cluster. Full config lives under
Workflows.
Next: the Quickstart.