clawdb (Rust SDK)
The official Rust client for ClawDB — persistent, branchable, semantically-searchable agent memory.
[dependencies]
clawdb = "0.1"
tokio = { version = "1", features = ["full"] }
Quick start
use clawdb::Client;
#[tokio::main]
async fn main() -> clawdb::Result<()> {
let db = Client::builder()
.endpoint("http://localhost:50050")
.agent_id("my-agent")
.build()
.await?;
let id = db.memory()
.remember("Deploy at 3 PM UTC")
.memory_type("task")
.tags(["ops", "deploy"])
.call()
.await?;
let results = db.memory()
.search("deploy schedule")
.top_k(5)
.call()
.await?;
for result in &results {
println!("{:.3} {}", result.score, result.memory.content);
}
let memories = db.memory().recall(&[&id]).call().await?;
db.memory().forget(&id).call().await?;
Ok(())
}
Branches
let branch = db.branches().fork("my-experiment").call().await?;
db.branches()
.merge("my-experiment")
.into_branch("trunk")
.strategy(MergeStrategy::Union)
.call()
.await?;
Configuration
let db = Client::builder()
.endpoint("http://localhost:50050")
.api_key("ck_live_...")
.agent_id("my-agent")
.timeout(std::time::Duration::from_secs(30))
.tls(false)
.build()
.await?;
Or set CLAWDB_ENDPOINT, CLAWDB_API_KEY, CLAWDB_AGENT_ID env vars and call Client::from_env().await?.
Docs
Full API reference: https://docs.rs/clawdb
Development
cd sdks/rust
cargo test
cargo clippy