Show HN: DBMS OLTP written in Rust – prioritises clarity and correctness(github.com)
github.com
Show HN: DBMS OLTP written in Rust – prioritises clarity and correctness
https://github.com/OxidizeLabs/ferrite
0 comments
—
https://github.com/OxidizeLabs/ferrite
—
I want to share Ferrite, an open-source OLTP database engine written in Rust that prioritizes clarity, correctness, and modern concurrency design over chasing feature-completeness or benchmark wars.
Ferrite is not trying to be a drop-in replacement for Postgres or SQLite. Instead, it’s designed as:
The smallest, clearest, well-documented OLTP engine showing how ACID, recovery, and concurrency work internally.
A learning and experimentation platform with code you can reason about
A solid foundation for future academic or production-grade work
PS it's my first HN post, so I hope you enjoy it and go easy on me.
Check it out here: https://github.com/OxidizeLabs/ferrite
Why I Built Ferrite
Most DBMS systems today:
Ferrite’s focus is pure OLTP, with readable code, tight documentation, and reproducible demonstrations of key DBMS concepts like concurrency control and ARIES-style crash recovery.
Core Capabilities:
Ferrite implements a traditional layered DB architecture with:
Storage & Recovery:
Concurrency & Transactions * Two-phase locking with deadlock detection * ACID transactions with multiple isolation levels
Indexes:
SQL Support:
All implemented in Rust, with safety and minimal unsafe code.
Technical Highlights:
What It’s Not:
Ferrite deliberately doesn’t (yet):
Fully complete SQL features — some are planned for the roadmap
This “non-goals-first” clarity helps keep the codebase approachable and educational.
Some Background
It all started with CMU 15–445 Introduction to Database Systems – https://15445.courses.cs.cmu.edu/spring2026/, a brilliant course for those wanting to learn about DBMS internals (so mucho gracias Andy Pavlo and Jignesh Patel).
They had built BUSTUB for the course as a way for students to use as a learning tool, but it was written in C++ and I wanted to try Rust. At first It was just going to be a learning project, the company I was working for was being taken over, and in the chaos, I had some extra time on my hands, and then LLM started to get really good, so I decided to try and extend the project to something akin to a real DBMS.
Then I got made redundant and had a lot of time on my hands, so the project got a lot more ambitious. A lot of the code was written by LLMs, with myself acting more as an architect, with some fixes by myself. So if anything, it can act as a demonstration of how much a single person can output with current LLM (for better or worse).
Some Caveats: