LlamaDB

discontinued

by Dan Spencer · since 2015 · also known as llamadb

Hobby SQL database in Rust built to learn SQL internals; archived and explicitly not for real use.

relationalresearch prototypeopen source (permissive)legacy

discontinued. Hobby project, archived on GitHub; last commit Dec 2017. The author marks it unmaintained and not for real use.

Overview

LlamaDB is a learning project by Dan Spencer, started in 2015 when Rust was barely 1.0, to understand how SQL databases work and to test whether Rust suited large systems software. It implements a SQL parser, a query planner and executor, and a B-tree storage layer modelled on SQLite's documentation, with a small CLI prompt for running queries. The author states plainly that it will never be production-ready. Development ended in 2017 and the repository is archived, but it remains a readable, MIT-licensed example of a from-scratch SQL engine in early Rust.

Strengths & trade-offs

Strengths

  • +Compact, readable SQL parser, planner and executor in Rust
  • +B-tree design modelled on SQLite's documented format
  • +Permissive MIT license for reuse in teaching

Trade-offs

  • −Archived and explicitly never production-ready
  • −Written against pre-stable nightly Rust; needs work to build today

Great for

  • +Studying how a small SQL engine is put together
  • +Historical example of early systems programming in Rust

Think twice for

  • −Storing any real data

Capabilities

Native or official first-party support · 2 of 25 tracked

✓Joins
✓Secondary indexes
–Transactions
–Full-text search
–Vector search
–Geospatial
–JSON
–Change data capture
–Triggers
–Stored procedures
–Materialized views
–TTL / expiry
–Pub/Sub
–Columnar storage
–In-memory
–Durable persistence
–Compression
–Encryption at rest
–Role-based access
–Time travel
–Branching
–Online schema changes
–Streaming ingest
–Offline sync
–Runs in WebAssembly

Scale & consistency

Comfortable data size
Small · ≤ 100 GB
Horizontal scaling
None
Multi-region
No
Transactions
None
Consistency
Strong
Schema
Strict
Architecture
Embedded, Single node
Query languages
SQL (subset)

Deployment

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

apis & protocolsCLI, Rust crate API
client languagesRust

Alternatives to LlamaDB

Compare all→
SQLiteRelational75.5

The in-process SQL engine that ships in every phone, browser and OS: one file, zero servers.

llamadb vs sqlite →
DuckDBColumnar / OLAP63.7

In-process columnar SQL database: the SQLite of analytics, running inside your app or notebook.

llamadb vs duckdb →
Turso Database (Limbo)Relational24.1

Ground-up Rust rewrite of SQLite with concurrent writes, async I/O, CDC and vector search.

llamadb vs turso-database →
redbKey-Value13.8

Pure-Rust embedded key-value store: copy-on-write B-trees, ACID, and a stable file format.

llamadb vs redb →
sledKey-Value13.3

Ambitious lock-free embedded Rust database whose 1.0 rewrite has stalled in alpha.

llamadb vs sled →
Microsoft AccessRelational45.8

Desktop database and forms builder bundled with Microsoft 365; still everywhere in back offices.

llamadb vs microsoft-access →

LlamaDB FAQ

What is LlamaDB?

LlamaDB is a relational database by Dan Spencer, first released in 2015. LlamaDB is a learning project by Dan Spencer, started in 2015 when Rust was barely 1.0, to understand how SQL databases work and to test whether Rust suited large systems software. It implements a SQL parser, a query planner and executor, and a B-tree storage layer modelled on SQLite's documentation, with a small CLI prompt for running queries. The author states plainly that it will never be production-ready. Development ended in 2017 and the repository is archived, but it remains a readable, MIT-licensed example of a from-scratch SQL engine in early Rust.

Is LlamaDB open source?

Yes. LlamaDB is open source. License: MIT License.

Does LlamaDB support ACID transactions?

No. LlamaDB does not provide ACID transactions; its consistency model is strong.

Does LlamaDB scale horizontally?

LlamaDB does not scale horizontally; it runs on a single node, so you scale it up rather than out. It is comfortable at small scale (≤ 100 GB).

How can I run LlamaDB?

You can self-host it and embed it in your application.

What is LlamaDB best for?

LlamaDB is a strong fit for studying how a small SQL engine is put together and historical example of early systems programming in Rust. Think twice for storing any real data.

What are the best alternatives to LlamaDB?

Common alternatives to LlamaDB include SQLite, DuckDB, Turso Database (Limbo), redb and sled. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

Is LlamaDB still maintained?

LlamaDB is discontinued. Hobby project, archived on GitHub; last commit Dec 2017. The author marks it unmaintained and not for real use.

How popular is LlamaDB?

LlamaDB ranks #609 of 844 databases on the WhichDB Score (0.8/100), and #187 among relational databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.