Skip to main content

Crate salvor

Crate salvor 

Source
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. Implies graph.
  • 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 to salvor-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.