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 forDurableConnection): Production-grade with WAL durability, MVCC transactions, crash recovery. Use this for production. -
InMemoryConnection(alias forSochConnection): 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§
- Client
Config - Client configuration
- Client
Stats - Client statistics
- Columnar
Query Result - Columnar query result - SIMD-friendly format for analytics
- Soch
Client - SochDB Client - LLM-optimized database access
Enums§
- Output
Format - Output format selection
Traits§
- Connection
Trait - 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 asConnection- a durable database connection. - InMemory
Connection - Alias for in-memory connection (for testing)