Rust API
Full API documentation is available on docs.rs/yantrikdb.
Quick Reference
Section titled “Quick Reference”use yantrikdb::{YantrikDB, Embedder, RecallQuery};
// Open databaselet mut db = YantrikDB::open("memory.db", 384)?;
// Set embedderdb.set_embedder(Box::new(MyEmbedder));
// Recordlet emb = db.embed("User likes Rust")?;db.record_with_embedding("User likes Rust", &emb, "semantic", 0.8, 0.5)?;
// Recall with builder patternlet query_emb = db.embed("programming languages")?;let results = db.recall_query( RecallQuery::new(query_emb) .top_k(5) .memory_type("semantic") .namespace("default"))?;
// Graph operationsdb.relate("user", "Rust", "prefers", 0.9)?;let edges = db.edges(Some("user"))?;
// Autonomous cognitionlet think_result = db.think(&Default::default())?;Embedder Trait
Section titled “Embedder Trait”Implement this trait to plug in any embedding model:
pub trait Embedder: Send + Sync { fn embed(&self, text: &str) -> Result<Vec<f32>, Box<dyn Error + Send + Sync>>; fn embed_batch(&self, texts: &[&str]) -> Result<Vec<Vec<f32>>, Box<dyn Error + Send + Sync>> { texts.iter().map(|t| self.embed(t)).collect() } fn dim(&self) -> usize;}Key Types
Section titled “Key Types”| Type | Description |
|---|---|
YantrikDB | Main database engine |
Memory | A stored memory record |
RecallResult | A recall result with scoring |
RecallQuery | Builder for composable queries |
Edge | A graph edge |
Trigger | A proactive trigger |
ThinkConfig | Configuration for the cognition loop |
ThinkResult | Result of a think() pass |
Pattern | A discovered behavioral pattern |
Conflict | A detected contradiction |