A distributed tracing system built in Rust.
crates/zelos— Meta crate re-exporting top-level APIszelos-proto— Protobuf definitions and generated typeszelos-trace— Core trace model and logiczelos-trace-grpc— gRPC publish/subscribe clientzelos-trace-types— Shared types
examples/— Rust examplesgo/— Go client, examples, generated stubspython/— Python examples (zelos-sdk pypi package)
Recommended: use the Nix dev shell. You can also run without Nix if you already have the toolchains.
- Install Nix and direnv
# Install Nix
sh <(curl -L https://nixos.org/nix/install) --daemon
# Install direnv
brew install direnv # macOS
sudo apt-get install direnv -y # Debian/Ubuntu
# Add to your shell rc (bash example)
echo 'eval "$(direnv hook bash)"' >> ~/.bashrc
source ~/.bashrc- Enter the dev shell (auto-activated with direnv)
cd zelos
# First time only
direnv allowThis provides Rust, Go, protoc (+ plugins), uv, ruff, treefmt and more.
- Build and test
just build
just testUse the top-level Justfile.
# List all recipes
just
# Build, check, lint, test
just build
just check
just clippy
just test
# Formatting
just fmt # format all supported languages (treefmt)
just fmt-check # check-only
just fix # format and fix allEnsure a Zelos agent/app is reachable at your URL (default grpc://127.0.0.1:2300).
List examples for a language:
just examples rust
just examples go
just examples pythonRun one example (optional URL overrides default):
just example rust hello-world
just example go hello-world
just example python hello-world
# with custom agent URL
just example rust hello-world grpc://127.0.0.1:2300Regenerate Go stubs (when proto files change):
just proto-goOutputs go to go/ from sources in crates/zelos-proto/proto/.
- Rust workspace: standard Cargo workflow (
just build,just test,just clippy). - Formatting/linting:
just fmt,just fmt-check,just fix. - Python examples run with
uv - Go examples run with the system
go
Licensed under either of:
- Apache License, Version 2.0 — see
LICENSE-APACHEor https://www.apache.org/licenses/LICENSE-2.0 - MIT license — see
LICENSE-MITor https://opensource.org/licenses/MIT
At your option.