| Crates.io | obelisk |
| lib.rs | obelisk |
| version | 0.34.1 |
| created_at | 2021-12-12 17:16:07.453167+00 |
| updated_at | 2026-01-12 14:23:48.783958+00 |
| description | Deterministic workflow engine |
| homepage | |
| repository | https://github.com/obeli-sk/obelisk |
| max_upload_size | |
| id | 496640 |
| size | 4,260,875 |
Obelisk
A deterministic workflow engine built on the WASM Component Model.
[!WARNING] Pre-release: Expect changes in CLI, gRPC, WIT, and database schema.
The Stargazers app features:
Obelisk fly.io deployment tool features:
obelisk command.curl -L --tlsv1.2 -sSf https://raw.githubusercontent.com/obeli-sk/obelisk/main/download.sh | bash
Or use cargo-binstall:
cargo binstall obelisk
# Use host's network. Ports 8080 (web) and 5005 (grpc) will be bound to 127.0.0.1
docker run --net=host getobelisk/obelisk
# Forward ports explicitly
docker run \
-p 8080:8080 -e 'OBELISK__webui__listening_addr=0.0.0.0:8080' \
-p 5005:5005 -e 'OBELISK__api__listening_addr=0.0.0.0:5005' \
getobelisk/obelisk
# Share the config and cache directory from host
docker run --net=host \
-u $(id -u):$(id -g) \
-v $(pwd):/config \
-e 'OBELISK__WASM__CACHE_DIRECTORY=/cache/obelisk/wasm' \
-v ~/.cache/obelisk/wasm:/cache/obelisk/wasm \
getobelisk/obelisk \
server run --config /config/obelisk.toml
Requires protoc.
cargo install --locked obelisk
Using Nix:
nix run github:obeli-sk/obelisk/latest
For more options see Installation.
Check out the Getting Started Guide for details.
obelisk server run
docker run -it --rm \
--name obelisk-postgres \
-e POSTGRES_PASSWORD=postgres \
-p 5432:5432 \
postgres:18
obelisk server run --config obelisk-postgres.toml
obelisk client component list
# Call fibonacci(10) activity from the workflow 500 times in series.
obelisk client execution submit testing:fibo-workflow/workflow.fiboa '[10, 500]' --follow
Visit localhost:8080 to manage components, functions and execution history.
This project has a roadmap and features are added in a certain order. Discuss features via GitHub Discussions before contributing. A Contributor License Agreement is required.
Set up dependencies via Nix:
cp .envrc-example .envrc
$EDITOR .envrc
direnv allow
# If direnv is not available use `nix develop`
Or manually install dependencies (see dev-deps.txt).
Run the program:
cargo run --release
Postgres must be running. See .envrc-example for how to set up the environment variables.
./scripts/test.sh
This project (all files and folders except as noted below) is licensed under the GNU Affero General Public License version 3.
The following subfolders are licensed under the MIT License:
wit/ – see LICENSE-MITtoml/ – see LICENSE-MITproto/ – see LICENSE-MITThe runtime includes functionality that may generate new "extension" WIT files. These generated files are typically based on a combination of user-provided WIT files and the base WIT definitions found in the MIT-licensed wit/ directory.
Users are free to use, modify, and distribute these generated WIT files under the terms of the MIT License, for example, to allow other WASM components to interact via these extended interfaces.