Skip to main content

Crate sochdb

Crate sochdb 

Source
Expand description

§SochDB Client SDK

LLM-optimized database client with 40-66% token savings vs JSON.

§Key Features

  • Path-based access: O(|path|) resolution independent of data size
  • Token-efficient: TOON format uses 40-66% fewer tokens than JSON
  • ACID transactions: Full MVCC with snapshot isolation
  • Vector search: Scale-aware backend (HNSW for small, Vamana+PQ for large)
  • Columnar storage: 80% I/O reduction via projection pushdown

§Connection Types

The SDK provides two connection types:

  • Connection (alias for DurableConnection): Production-grade with WAL durability, MVCC transactions, crash recovery. Use this for production.

  • InMemoryConnection (alias for SochConnection): Fast in-memory storage for testing. Data is not persisted. Use only for tests or ephemeral data.

§Quick Start

use sochdb::prelude::*;

// Open a durable connection (default - uses WAL for persistence)
let conn = Connection::open("./data")?;

// Or for testing, use in-memory
let test_conn = InMemoryConnection::open("./test_data")?;

// Query with TOON output (66% fewer tokens)
let result = client.query("users")
    .filter("score", Gt, 80)
    .limit(100)
    .to_toon()?;

println!("Tokens: {}", result.metrics().soch_tokens);
println!("Savings: {:.1}%", result.metrics().token_savings_percent());

§CONTEXT SELECT for LLM Context

let context = client.context_query()
    .from_session("session_id")
    .with_token_limit(4000)
    .user_section(|s| s.columns(&["query", "preferences"]).priority(1))
    .history_section(|s| s.columns(&["recent"]).priority(2))
    .execute()?;

Re-exports§

pub use connection::DurableConnection;
pub use connection::SochConnection;
pub use batch::BatchOp;
pub use batch::BatchResult;
pub use batch::BatchWriter;
pub use column_access::ColumnView;
pub use column_access::TypedColumn;
pub use connection::ConnectionConfig;
pub use connection::ConnectionModeClient;
pub use connection::Durability;
pub use connection::DurableStats;
pub use connection::ReadOnlyConnection;
pub use connection::ReadableConnection;
pub use connection::RecoveryResult;
pub use connection::SyncModeClient;
pub use connection::WritableConnection;
pub use context_query::ContextQueryBuilder;
pub use context_query::ContextQueryResult;
pub use context_query::SectionBuilder;
pub use context_query::SectionContent;
pub use crud::DeleteResult;
pub use crud::InsertResult;
pub use crud::RowBuilder;
pub use crud::UpdateResult;
pub use format::CanonicalFormat;
pub use format::ContextFormat;
pub use format::FormatCapabilities;
pub use format::FormatConversionError;
pub use format::WireFormat;
pub use path_query::PathQuery;
pub use result::ResultMetrics;
pub use result::SochResult;
pub use schema::SchemaBuilder;
pub use schema::TableDescription;
pub use transaction::ClientTransaction;
pub use transaction::IsolationLevel;
pub use transaction::SnapshotReader;
pub use vectors::SearchResult;
pub use vectors::VectorCollection;
pub use atomic_memory::AtomicMemoryWriter;
pub use atomic_memory::AtomicWriteResult;
pub use atomic_memory::MemoryOp;
pub use atomic_memory::MemoryWriteBuilder;
pub use checkpoint::Checkpoint;
pub use checkpoint::CheckpointMeta;
pub use checkpoint::CheckpointStore;
pub use checkpoint::DefaultCheckpointStore;
pub use checkpoint::RunMetadata;
pub use checkpoint::RunStatus;
pub use checkpoint::WorkflowEvent;
pub use policy::CompiledPolicySet;
pub use policy::EvaluationResult;
pub use policy::PolicyOutcome;
pub use policy::PolicyRule;
pub use trace::SpanKind;
pub use trace::SpanStatusCode;
pub use trace::TraceRun;
pub use trace::TraceSpan;
pub use trace::TraceStore;
pub use trace::TraceValue;
pub use batch::GroupCommitBuffer;Deprecated
pub use batch::GroupCommitConfig;
pub use error::ClientError;
pub use query::QueryExecutor;
pub use query::QueryResult;
pub use recovery::CheckpointResult;
pub use recovery::RecoveryManager;
pub use recovery::RecoveryStatus;
pub use recovery::WalVerificationResult;

Modules§

ast_query
AST-Based SQL Executor
atomic_memory
Atomic Multi-Index Memory Writes (Task 4)
batch
Batch Writer with Group Commit & Streaming Auto-Commit
checkpoint
Workflow Checkpoint Storage Primitives (Task 6)
column_access
Zero-copy column access for analytics (safe implementation)
connection
SochDB Connection Handle
context_query
ContextQueryBuilder Client API
crud
CRUD Operations (DML)
error
Error types for SochDB Client SDK
format
Unified Output Format Semantics (Task 3)
graph
Semi-GraphDB Overlay for Agent Memory.
intent_recovery
Scalable Intent Recovery + Garbage Collection (Task 15)
path_query
Path-Native Query Builder
policy
Policy & Safety Hooks for Agent Operations
prelude
Prelude for convenient imports
query
SOCH-QL Query Executor (Deprecated)
queue
First-Class Queue API with Ordered-Key Task Entries
recovery
Crash Recovery API
result
Result Streaming with Token Metrics
routing
Tool Routing Primitive for Multi-Agent Scenarios
schema
Schema Management (DDL)
semantic_cache
Semantic Cache with Provenance-Safe Keys (Task 8)
sql_entry
Unified SQL Execution Entry Point (Task 12)
storage
LSCS Storage Facade
temporal_graph
Temporal Graph Extensions (Task 7)
trace
First-Class Trace Store (Task 5)
transaction
ACID Transactions with MVCC
vectors
Scale-Aware Vector Collection
wal_atomic
WAL-Disciplined Atomic Multi-Index Writes (Task 14)

Structs§

ClientConfig
Client configuration
ClientStats
Client statistics
ColumnarQueryResult
Columnar query result - SIMD-friendly format for analytics
SochClient
SochDB Client - LLM-optimized database access
TemporalDecayConfig
Configuration for temporal decay scoring
TemporalScorer
Temporal decay scorer
TemporallyDecayedResult
A result with temporal decay applied

Enums§

DecayStage
When to apply decay scoring
OutputFormat
Output format selection

Traits§

ConnectionTrait
Trait for database connection operations.

Type Aliases§

Connection
Type alias for the default connection - uses durable storage with WAL
Database
Type alias for Database (for users expecting use sochdb::Database) This is the same as Connection - a durable database connection.
InMemoryConnection
Alias for in-memory connection (for testing)