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::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 trace::TraceRun;
pub use trace::TraceSpan;
pub use trace::TraceStore;
pub use trace::TraceValue;
pub use trace::SpanKind;
pub use trace::SpanStatusCode;
pub use policy::CompiledPolicySet;
pub use policy::EvaluationResult;
pub use policy::PolicyOutcome;
pub use policy::PolicyRule;
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.
path_query
Path-Native Query Builder
policy
Policy & Safety Hooks for Agent Operations
prelude
Prelude for convenient imports
query
SOCH-QL Query Executor
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)
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

Structs§

ClientConfig
Client configuration
ClientStats
Client statistics
ColumnarQueryResult
Columnar query result - SIMD-friendly format for analytics
SochClient
SochDB Client - LLM-optimized database access

Enums§

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)