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.