1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
//! # 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
//!
//! ```rust
//! 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()?;
//! # Ok::<(), sombra::GraphError>(())
//! ```
//!
//! ## 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](docs/architecture.md) for more details.
// Re-export the main public API
pub use crate;
pub use crate;
pub use crate;
// Re-export query API types
pub use crate;
pub use crate;
pub use crate;
pub use crateSubgraph;