Question

Do I need to know Rust to use Traverse?

It depends on what you want to do. There are two distinct roles in a Traverse deployment, and only one of them requires Rust.

Capability consumer — no Rust required

If you want to call existing capabilities from your app, you do not need to know Rust. The Traverse browser adapter is a local HTTP server. Your application sends a POST request with a goal and inputs. The adapter runs the runtime, executes the matching WASM capability, and returns a JSON response with the result and a trace artifact.

From a React app, that looks like a fetch call to http://127.0.0.1:4174/execute. From a Python script, it is a requests.post call to the same address. You never touch the Rust code. You never touch the WASM binary directly. The adapter handles all of that.

This is intentional. Teams that want to use a shared library of capabilities should not need to understand the implementation language. The contract is the interface. The HTTP adapter is the bridge.

Capability author — Rust required

If you want to write your own capabilities, you write Rust. Your Rust code implements the capability logic and is annotated with the contract metadata: inputs, outputs, preconditions, placement targets, and constraints. You compile to wasm32-wasi using the standard Rust toolchain.

You do not need deep Rust expertise to write simple capabilities. The expedition planning example is a good reference. Each capability is a focused function with clear inputs and outputs. If you know Rust basics, reading the example code will tell you most of what you need.

What you need in each role

  • Capability consumer: HTTP client in your language of choice, a running browser adapter, and a bundle file. No Rust, no WASM tooling.
  • Capability author: Rust toolchain (rustup), the wasm32-wasi target, and familiarity with writing Rust functions.

Getting started without Rust

The fastest path for non-Rust developers is to clone the repo, run cargo build once (you will need Rust installed for this build step), start the browser adapter, and then point your existing app at it. After that initial setup, all your application code can be standard JavaScript, Python, or any language with HTTP support.

A future release will distribute pre-built adapter binaries, which will remove the need for the Rust build step entirely for capability consumers.

See the installation guide for the full setup steps, or the React integration guide for a frontend-focused walkthrough.