Crates
Riverbeam is one Cargo workspace of fifteen library crates. They share one version, 0.1.0. The
repository README asks for Rust 1.78 or newer. See
Installation for how to add them.
Which crates do I need?
| Building | Add |
|---|---|
| The pipeline in one process | beam_core, beam_types |
| Custom agents and tools | + beam_agents |
| A worker process behind NATS | + beam_worker, beam_stream, beam_store, riverbase_task |
| An API process | beam_domain, beam_stream, beam_types |
| Retrieval with pgvector | + beam_knowledge with feature postgres |
| Voice turns | + beam_audio |
beam_core depends on most of the other crates, so adding it brings them in. Add a crate directly
when you need to name its types.
The crates
| Crate | Purpose | Depends on |
|---|---|---|
beam_types | Wire types: InvokeRequest, AgentResult, StreamChunk, ContentPart, actions, models | none |
beam_core | RiverBeam invoke pipeline, BeamConfig, and the BEM-* error catalogue | most beam_* crates, riverbase_core |
beam_agents | Agent trait and registry, RigAgentRunner, completion clients, tools, sandbox tools, skills | beam_sandbox, beam_types, riverbase_core |
beam_sandbox | SandboxRoot path jail and WorkingTree git (libgit2, vendored) | riverbase_core |
beam_routing | ModelRouter, routing strategies, model list loader | beam_types, riverbase_core |
beam_memory | Memory scopes, MemoryManager, backends, context trimming | beam_types, riverbase_core |
beam_knowledge | Embedders, vector stores, chunking, ingest, retrieval, the knowledge factory | beam_types, riverbase_core |
beam_store | BeamStore trait, InMemoryStore, PgBeamStore | beam_types, riverbase_core |
beam_usage | Usage plans, UsageGuard, UsageTracker, usage stores | beam_types |
beam_audit | AuditEvent, AuditLogger, sinks | beam_types |
beam_security | SecurityManager and GRL rules on river_reed | river_reed |
beam_stream | BeamStream, delta merging, in-memory, broadcast and NATS transports | beam_types, riverbase_core |
beam_audio | Audio session state, WebSocket message types, WAV utilities, the audio turn | riverbase_core |
beam_worker | BeamWorker task dispatch and NatsWorkerServer | beam_core, beam_types, riverbase_core, riverbase_task |
beam_domain | BeamDomain, the Riverbase Domain bundle, worker clients, authorization, catalog | beam_core, beam_types, beam_worker, riverbase_core |
Feature flags
Only two crates have features. All are off by default.
| Crate | Feature | Effect |
|---|---|---|
beam_knowledge | postgres | PgVectorStore and ensure_knowledge_schema (Diesel and pgvector). Without it, the factory falls back to the in-memory store. |
beam_knowledge | polars-ingest | Compute ingest statistics with Polars instead of plain Rust. Same values; heavier build. |
beam_audio | audio-http-stt | HttpStt, an OpenAI-compatible speech-to-text client |
beam_audio | audio-whisper | Alias for audio-http-stt |
beam_audio | audio-decode | Marks WebM input as recognized (BEM-352 instead of BEM-353); no decoder ships |
The workspace builds riverbase_core with nats-io, riverbase_task with postgres and
nats-io, and river_reed with grl-rule-engine.
Similar names
| Name | Crate | What it stores |
|---|---|---|
InMemoryStore | beam_store | Sessions, runs, messages, actions |
InMemoryVectorStore | beam_knowledge | Knowledge chunks and vectors |
InMemoryBackend | beam_memory | Memory turns and facts |
InMemoryUsageStore | beam_usage | Usage counters |
InMemoryTransport | beam_stream | Published stream frames |
InMemorySink | beam_audit | Audit events |