GitHub - niklabh/velocidb: VelociDB is a production-grade, high-performance database engine written in Rust, inspired by SQLite's design but optimized for modern hardware capabilities.

2 min read Original article ↗

VelociDB

A next-generation embedded database with modern architecture: MVCC, async I/O, SIMD vectorization, CRDT sync, and persistent memory support.

🚀 High-Performance: Built from the ground up for multi-core systems, NVMe storage, and distributed edge computing.

Rust License Architecture Docs

📚 Documentation

🚀 Quick Start

Interactive REPL

VelociDB v0.1.0
Type 'help' for help, 'exit' or 'quit' to exit

velocidb> CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)
OK
velocidb> INSERT INTO users VALUES (1, 'Alice', 30)
OK
velocidb> SELECT * FROM users WHERE age > 25
...

As a Library

use velocidb::Database;

fn main() -> anyhow::Result<()> {
    let db = Database::open("my_database.db")?;
    
    db.execute("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)")?;
    db.execute("INSERT INTO users VALUES (1, 'Alice')")?;
    
    let results = db.query("SELECT * FROM users")?;
    println!("Found {} users", results.rows.len());
    
    Ok(())
}

Features

  • Modern Core: MVCC, Async I/O (Tokio/io_uring), Lock-Free structures.
  • High Performance: SIMD vectorization, Cache-conscious B-Tree, NVMe optimization.
  • Storage Flexibility: Hybrid Row/Columnar storage, PMEM/DAX support, Cloud VFS.
  • Sync Ready: CRDT synchronization for edge/mobile.

Installation

git clone https://github.com/niklabh/velocidb.git
cd velocidb
cargo build --release

Limitations

  • B-Tree Capacity: Currently limited to ~4,096 records due to pending internal node splitting implementation.
  • SQL Support: Core subset only (No JOINs, GROUP BY yet).

License

MIT License. See LICENSE for details.