Technical Architecture

What crates make up Traverse?

Traverse is a workspace of six Rust crates. Each one has a specific job. You can use them together through the CLI or pull individual crates into your own code.

traverse-runtime

The core execution engine. It drives the state machine from idle through discovery, constraint evaluation, selection, and execution. Every placement target builds on this crate. You use it if you are embedding Traverse in a Rust application rather than calling it from the CLI.

traverse-contracts

Defines the contract schema: input and output types, preconditions, postconditions, placement constraints, and the governing spec. The runtime uses this crate to parse, validate, and enforce contracts. You interact with it by writing TOML contract files.

traverse-registry

Stores capability registrations and handles discovery queries. A registration is a contract plus a compiled WASM binary. The registry supports multiple versions of the same capability and lets the runtime select the right one based on constraints.

traverse-cli

The traverse command you install with cargo install traverse-cli. It wraps the runtime, registry, and MCP server in a terminal interface. Most developers only need this crate directly.

traverse-mcp

Implements the MCP stdio server that exposes your capabilities to AI agents. It supports tools/list and tools/call. The CLI starts it with traverse mcp serve. See how the MCP server works for details.

traverse-expedition-wasm

Compiles the runtime to a WASM binary for use in browsers and edge environments. This is the crate behind the browser adapter. It is the least mature of the six and is still in active development.