Crate sombra

Crate sombra 

Source
Expand description

§Sombra - High Performance Graph Database

Sombra is a fast, embedded graph database written in Rust with ACID transactions, WAL-based durability, and comprehensive indexing support.

§Quick Start

use sombra::{GraphDB, Node, Edge};

// Open a database (creates if it doesn't exist)
let mut db = GraphDB::open("my_graph.db")?;

// Start a transaction
let mut tx = db.begin_transaction()?;

// Create nodes
let alice = tx.add_node(Node::new(1))?;
let bob = tx.add_node(Node::new(2))?;

// Create an edge between nodes
let edge = Edge::new(1, alice, bob, "KNOWS");
tx.add_edge(edge)?;

// Commit the transaction
tx.commit()?;

§Features

  • ACID Transactions: Full atomicity, consistency, isolation, and durability
  • WAL-based Durability: Write-Ahead Logging for crash recovery
  • Multiple Index Types: B-tree indexes for fast lookups
  • Property Indexes: Index nodes by property values
  • Language Bindings: Python and Node.js support
  • Configurable Sync Modes: Trade off performance vs. durability
  • Health Monitoring: Built-in metrics and health checks

§Architecture

Sombra uses a layered architecture:

  • Storage Layer: Page-based storage with checksums
  • Pager Layer: Page caching and WAL management
  • Database Layer: Graph operations and transactions
  • API Layer: Public interface and language bindings

See the architecture documentation for more details.

Re-exports§

pub use crate::db::CompactionConfig;
pub use crate::db::CompactionState;
pub use crate::db::Config;
pub use crate::db::GraphDB;
pub use crate::db::IntegrityOptions;
pub use crate::db::IntegrityReport;
pub use crate::db::PerformanceMetrics;
pub use crate::db::SyncMode;
pub use crate::db::Transaction;
pub use crate::db::TxId;
pub use crate::db::TxState;
pub use crate::error::GraphError;
pub use crate::error::Result;
pub use crate::model::Edge;
pub use crate::model::EdgeDirection;
pub use crate::model::EdgeId;
pub use crate::model::Node;
pub use crate::model::NodeId;
pub use crate::model::PropertyValue;
pub use crate::db::query::analytics::DegreeDistribution;
pub use crate::db::query::analytics::DegreeType;
pub use crate::db::query::builder::QueryBuilder;
pub use crate::db::query::builder::QueryResult;
pub use crate::db::query::pattern::EdgePattern;
pub use crate::db::query::pattern::Match;
pub use crate::db::query::pattern::NodePattern;
pub use crate::db::query::pattern::Pattern;
pub use crate::db::query::pattern::PropertyBound;
pub use crate::db::query::pattern::PropertyFilters;
pub use crate::db::query::pattern::PropertyRangeFilter;
pub use crate::db::query::subgraph::Subgraph;

Modules§

db
error
Error handling for Sombra operations.
index
logging
model
Data models for graph entities.
pager
storage