MagnumDB
Modern Open Source Embedded Database Engine in Native Rust
MagnumDB is an open-source embedded key-value and SQL database engine written 100% from scratch in native Rust. Designed for performance, reliability, and modularity.
Features
- Embedded Engine: Runs directly inside Rust binaries with zero external C/C++ dependencies.
- WAL Durability: Write-Ahead Logging (WAL) with TxID framing and CRC32 checksums ensures crash recovery.
- B+ Tree Indexing: Custom 4KB page disk pager, LRU buffer pool management, overflow pages, and leaf page recycling.
- Relational SQL Query Engine: Hash JOINs (
INNER JOIN,LEFT JOIN),GROUP BY&HAVINGanalytical aggregations, range filters, and composite multi-column indexes. - MVCC & Transactions: MVCC row headers (
xmin,xmax) and transaction logging withBEGIN,COMMIT, andROLLBACK. - PostgreSQL Protocol Compatibility: Native PostgreSQL Wire Protocol (
pgwire) handlingStartupMessage,RowDescription(T),DataRow(D), andCommandComplete(C). - Multi-Client TCP Server: Async TCP server powered by Tokio with connection limits and idle timeouts.
What's New in v0.3.0
Version 0.3.0 is a milestone release introducing relational query capabilities and PostgreSQL protocol compatibility:
- 🔗 Relational JOINs: Support for
INNER JOINandLEFT JOINusing streamingHashJoinExecVolcano operators:SELECT users.name, orders.amount FROM users JOIN orders ON users.id = orders.user_id; - 📊
GROUP BY&HAVINGAggregations: StreamingHashGroupAggregateExecoperator for analytical groupings:SELECT dept, COUNT(*) FROM employees GROUP BY dept HAVING COUNT(*) > 1; - 📑 Composite Multi-Column Indexes: Supports secondary indexing over multiple columns:
(last_name, first_name); - 🐘 Native PostgreSQL Wire Protocol (
pgwire): Server auto-detects and serves native PostgreSQL protocol connections (StartupMessage,RowDescription,DataRow,CommandComplete,ReadyForQuery). - ⏳ MVCC Tuple Headers: Binary row encoding incorporates
[xmin: 8B][xmax: 8B]transaction visibility metadata.
Architecture
graph TD
A[Client / magnum shell / psql] -->|SQL Query| B(SQL Parser)
B -->|AST| C(Query Executor)
C -->|Reads/Writes| D[B+ Tree Index]
C -->|Logs| E[(WAL - Write Ahead Log)]
D -->|Request Page| F(Buffer Pool Manager)
F -->|Evict/Load 4KB Pages| G[(Disk / Pager)]
style A fill:#f9f,stroke:#333,stroke-width:2px
style D fill:#bbf,stroke:#333,stroke-width:2px
style F fill:#bbf,stroke:#333,stroke-width:2px
style G fill:#dfd,stroke:#333,stroke-width:2px
style E fill:#dfd,stroke:#333,stroke-width:2px
Installation
Add MagnumDB to your Cargo.toml:
[]
= "0.3.0"
Quick Start (Embedded Key-Value)
use ;
Embedded SQL Usage
use ;
use ;
Contributing & License
We welcome contributions! Please review CONTRIBUTING.md.
Licensed under the MIT License.