Skip to main content

dbx_core/
lib.rs

1//! # DBX — High-Performance Embedded Database
2//!
3//! DBX is a high-performance embedded database built on a 5-Tier Hybrid Storage architecture.
4//! Written in pure Rust, it leverages Apache Arrow and Parquet for columnar storage.
5//!
6//! ## Key Features
7//!
8//! - **5-Tier Hybrid Storage**: Delta → Cache → WOS → Index → ROS
9//! - **Apache Arrow-based**: Columnar storage and vectorized operations
10//! - **SQL Support**: SELECT, WHERE, JOIN, GROUP BY, ORDER BY
11//! - **ACID Transactions**: Type-safe transactions using the Typestate pattern
12//! - **Performance Optimized**: LRU Cache, Bloom Filter, SIMD vectorization
13//!
14//! ## Quick Start
15//!
16//! ### Basic Usage (CRUD)
17//!
18//! ```rust
19//! use dbx_core::Database;
20//!
21//! # fn main() -> dbx_core::DbxResult<()> {
22//! // Open database
23//! let db = Database::open_in_memory()?;
24//!
25//! // Insert data
26//! db.insert("users", b"user:1", b"Alice")?;
27//!
28//! // Get data
29//! let value = db.get("users", b"user:1")?;
30//! assert_eq!(value, Some(b"Alice".to_vec()));
31//!
32//! // Delete data
33//! db.delete("users", b"user:1")?;
34//! # Ok(())
35//! # }
36//! ```
37//!
38//! ### Transactions
39//!
40//! ```rust
41//! use dbx_core::Database;
42//!
43//! # fn main() -> dbx_core::DbxResult<()> {
44//! let db = Database::open_in_memory()?;
45//!
46//! // Begin transaction
47//! let _tx = db.begin()?;
48//!
49//! // Basic CRUD uses Database directly
50//! db.insert("users", b"user:2", b"Bob")?;
51//!
52//! // Transactions are used with Query Builder (Phase 6)
53//! # Ok(())
54//! # }
55//! ```
56//!
57//! ## Architecture
58//!
59//! ### 5-Tier Hybrid Storage
60//!
61//! 1. **Delta Store** (DashMap) — In-memory write buffer, lock-free concurrency
62//! 2. **Cache** (LRU) — Read cache for frequently accessed data
63//! 3. **WOS** (sled) — Write-Optimized Store, persistent storage
64//! 4. **Index** (Bloom Filter) — Fast existence checks
65//! 5. **ROS** (Parquet) — Read-Optimized Store, columnar compression
66//!
67//! ### SQL Execution Pipeline
68//!
69//! ```text
70//! SQL String → Parser → AST → Planner → LogicalPlan
71//!          → Optimizer → PhysicalPlan → Executor → RecordBatch
72//! ```
73//!
74//! ## Module Structure
75//! - [`engine`] — Database engine ([`Database`])
76//! - [`sql`] — SQL parser, planner, optimizer, executor
77//! - [`storage`] — 5-Tier storage backends
78//! - [`transaction`] — MVCC transaction management
79//! - [`index`] — Hash Index
80//! - [`wal`] — Write-Ahead Log
81
82pub mod api;
83pub mod automation;
84pub mod engine;
85pub mod error;
86pub mod index;
87pub mod sql;
88pub mod storage;
89pub mod traits;
90pub mod transaction;
91pub mod wal;
92
93// ===== Re-exports =====
94#[cfg(feature = "simd")]
95pub mod simd;
96
97// Logging utilities
98pub mod logging;
99
100// Re-export commonly used types
101pub use engine::{Database, DurabilityLevel, SchemaBuilder};
102pub use error::{DbxError, DbxResult};