Expand description
Salvor is a durable execution runtime for AI agents, written in Rust.
A salvor is the party that recovers a wrecked ship and its cargo. This runtime does the same for a crashed agent run: every run is an append-only event log, so a process killed mid-step resumes exactly where it stopped, with no repeated side effects.
This crate is a facade. It holds no logic of its own; it re-exports the salvor-* family so one
dependency covers the library. Everything here is equally reachable by depending on the
individual crates, which is the better choice when you want a narrow build.
§What the default features give you
The agent loop (runtime), the tool contract (tools), the SQLite event store (store),
and the event model and replay engine (core). That is the set needed to define an agent, run
it, kill it, and resume it.
§What is optional
Each of these is off by default, because each pulls a dependency tree worth opting into deliberately:
graph: the declarative graph document format and its validator.engine: the walker that executes a graph document. Impliesgraph.server: the HTTP and server-sent-events control plane.llm: the Messages API client, for talking to a model directly.wasm: sandboxed WebAssembly component tools. Heavy, since it builds wasmtime.mcp: Model Context Protocol tools, forwarded tosalvor-tools.
§Versioning
Every re-exported crate is pinned to this crate’s exact version, so upgrading salvor moves the
whole family together and cannot mix versions that were never tested against each other.
Modules§
- core
- The event model, replay cursor, and state fold: the durability engine’s core.
- engine
- The walker that executes a graph document: linear chains, gates, branches, maps, and forks.
- graph
- The declarative graph document format and its validator.
- llm
- The Messages API client, for hosted and local model endpoints.
- prelude
- The handful of names most programs want, in one import.
- runtime
- The agent loop, budgets, and the deterministic run context.
- server
- The HTTP and server-sent-events control plane over the durable runtime.
- store
- The event store trait and its SQLite implementation.
- tools
- The tool contract: effect classification, typed handlers, and the
#[derive(Tool)]macro. - wasm
- Sandboxed WebAssembly component tools, run under wasmtime with WASI capabilities denied.