Traverse isn't a single binary. It's a Rust workspace of purpose-built crates, each governed by an immutable, versioned spec, that together define, validate, place, and execute business capabilities. This is the map.
Six vocabulary words cover almost everything. A Capability is a unit of business logic. A Contract declares what it needs and promises, in JSON Schema. An Event Contract does the same for things a capability publishes or consumes. A Workflow composes capabilities into a sequence. The Runtime validates a request against its contract, places it on a target, and executes it. Every execution produces a Trace — a structured, queryable record of what ran, against which contract version, with what result.
Three crates carry the actual runtime behavior — reading a contract, resolving a capability against the registry, and executing it inside a sandboxed WASM instance with enforced limits.
traverse-runtime
Shipped
The core execution engine. Validates a runtime request against its contract, resolves placement, and drives execution against the correct executor — native, thread-pooled, or WASM.
traverse-contracts
Shipped
Contract definitions and validation. Parses capability and event contracts, checks preconditions and postconditions, and is the single source of truth the runtime defers to.
traverse-registry
Shipped
Capability and event registries. Resolves a name and version to a concrete contract and binary, and enforces registration integrity.
Two crates expose the runtime — one for humans at a terminal, one for AI agents over the Model Context Protocol.
traverse-cli
Shipped
The traverse command. Register, list, validate, and run governed capabilities from the terminal. Packaged as traverse-cli-rs on crates.io; the binary stays traverse-cli.
traverse-mcp
Shipped
The Model Context Protocol server. Lets an AI agent discover, inspect, and execute governed capabilities over stdio. See what agents can do with it →
Three crates in the workspace carry native embedding. This is also where the honesty matters most — status varies a lot between them. Full per-platform detail, including the four SDK packages outside this workspace, lives on the Platforms page →
traverse-embedder
Shipped
The public Rust embedder SDK, implementing embedder-api/1.0.0. Real bundle execution for Linux GTK and CLI hosts, shipped in v0.8.0.
traverse-native-bridge
Shipped
Deterministic builder for the governed native runtime WASM bridge — the foundation layer other native embedders build on.
traverse-swift-host
Feasibility proof
An Apple static-library feasibility host proving a Swift app can call a Rust-hosted wasmi interpreter with host-owned limits. Not a shipped iOS runtime — see why on Platforms →
traverse-expedition-wasm
Shipped
The expedition planning domain compiled to wasm32-wasi, governed by spec 027. Six capabilities, five events, one workflow — the canonical proof that a contract can go from definition to a traced execution. See it running in Examples →
Every one of the crates above is governed by at least one immutable, versioned spec. The project's own rule, stated plainly in its constitution: when code and contract disagree, the contract wins until it's formally amended. No change merges without passing spec_alignment_check.sh against its governing spec.
Roughly how the 73 break down by area — this is our own bucketing for orientation, not an authoritative taxonomy:
Every crate described here is in the open-source repo, Apache 2.0 licensed, with its own README.