Launching today
AetheriusDB
High-Performance Data Engine
2 followers
High-Performance Data Engine
2 followers
AetheriusDB — one engine for SQL, vector search, graph traversal, and time-travel, with your logic running inside the database.
2 followers
2 followers
I spent the last year building a database engine from scratch in Rust — AetheriusDB
- One Rust engine for transactions, analytics and vectors
- A database with vector search and time travel in SQL
AetheriusDB is a database engine written in Rust. It speaks the PostgreSQL
wire protocol and runs transactions and analytics in one engine. It also has
vector nearest-neighbour search and time-travel reads in plain SQL. Runs on
macOS and Linux, and on Windows via WSL2.
Hi,
For the past year we've been building AetheriusDB, a database engine
written from scratch in Rust. Today we're sharing it publicly for the first time.
Why build another database? We kept running three systems side by side:
Postgres for transactions, a columnar warehouse for analytics, and a vector
store for embeddings. We wanted to try putting all three in one engine,
designed around how memory and CPUs actually work.
What it does today:
Speaks the PostgreSQL wire protocol. psql and standard Postgres
drivers connect to it.
Transactions and analytics in one engine. New writes land in a mutable
delta tier, and a background process seals them into 64 MiB columnar slabs.
Queries read both tiers under snapshot isolation.
Vectors in plain SQL. A TENSOR(n) column type and
ORDER BY emb <=> '[…]' LIMIT k for nearest-neighbour search.
Time travel. PULSE COMMIT 'before_migration' names a point in time,
and SELECT … FROM orders @'before_migration' reads the table as it was.
Clients: Python, Java, .NET, Arrow Flight, a CLI, and a desktop Studio.
Runs on: macOS and Linux; Windows through WSL2.
What it isn't (yet): it's young (0.1.x). Clustering is not something
we'd tell you to rely on yet. We'd love testers who will break it.
Biggest lesson so far: the hard part of a database isn't making it fast.
It's making it correct after a crash, and correct while two sessions write at
once. Most of our time went into crash-recovery and isolation tests.
Site + downloads: https://aetheriusdb.com
Happy to answer anything: architecture, Rust, or why anyone would do this to
themselves.