clawdb-client 0.1.0

Lightweight gRPC client for ClawDB server.
Documentation

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?;

    // Store a memory
    let id = db.memory()
        .remember("Deploy at 3 PM UTC")
        .memory_type("task")
        .tags(["ops", "deploy"])
        .call()
        .await?;

    // Search
    let results = db.memory()
        .search("deploy schedule")
        .top_k(5)
        .call()
        .await?;

    for result in &results {
        println!("{:.3}  {}", result.score, result.memory.content);
    }

    // Recall
    let memories = db.memory().recall(&[&id]).call().await?;

    // Forget
    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