QuineDB
discontinuedby Gary Fredericks · since 2016 · also known as quinedb
A joke key-value store that is also a quine: every write prints a new copy of itself containing your data.
discontinued. Joke project with no commits since 2017; the script still runs on Bash 4 but nothing is maintained.
Overview
QuineDB is Gary Fredericks' 2016 satire of database design: a single Bash 4 script that stores keys and values inside its own source code. Running it prints the (possibly modified) script to stdout and the command result to stderr, so a write only persists if you redirect stdout back over the file; get, set, delete and keys are the whole API, and 'transactions' are built by piping one invocation into the next. The README cheerfully reports that 1,000 inserts take over 11 minutes and dodges questions about concurrency and clustering. It is a fun teaching prop about quines, persistence and what a database fundamentally is, and should never hold real data.
Strengths & trade-offs
Strengths
- +The entire database, code and data, travels as one self-reproducing file
- +Forking or versioning the database is just copying a script
- +A memorable illustration of quines and of what 'persistence' really requires
Trade-offs
- −Deliberately impractical: very slow beyond a few hundred keys
- −Writes are lost unless stdout is redirected back over the script
- −No concurrency control, networking or real durability guarantees
Great for
- +Teaching quines and self-modifying programs
- +Conference talks and jokes about database design
Think twice for
- −Storing anything you care about
- −Any concurrent or multi-user use
Capabilities
Native or official first-party support · 1 of 25 tracked
Scale & consistency
- Comfortable data size
- Small · ≤ 100 GB
- Horizontal scaling
- None
- Multi-region
- No
- Transactions
- Limited ACID
- Consistency
- Strong
- Schema
- Schemaless
- Architecture
- Embedded, Single node
- Query languages
- Command-line get/set/delete/keys
Operations get slower roughly with n log n of the data size; a thousand keys is already painful.
Deployment
Ecosystem
Alternatives to QuineDB
The in-process SQL engine that ships in every phone, browser and OS: one file, zero servers.
quinedb vs sqlite →Tiny memory-mapped B+tree with ACID transactions and lock-free readers; reached 1.0 in 2026.
quinedb vs lmdb →etcd's maintained fork of BoltDB: a simple, pure-Go B+tree store in a single file.
quinedb vs bbolt →The standard embedded JVM cache, with heap, off-heap and disk tiers and optional Terracotta clustering.
quinedb vs ehcache →Heavily reworked LMDB descendant: memory-mapped ACID B+tree with auto-growing files.
quinedb vs libmdbx →Embedded LSM storage engine that writes straight to object storage like S3.
quinedb vs slatedb →QuineDB FAQ
What is QuineDB?
QuineDB is a key-value database by Gary Fredericks, first released in 2016. QuineDB is Gary Fredericks' 2016 satire of database design: a single Bash 4 script that stores keys and values inside its own source code. Running it prints the (possibly modified) script to stdout and the command result to stderr, so a write only persists if you redirect stdout back over the file; get, set, delete and keys are the whole API, and 'transactions' are built by piping one invocation into the next. The README cheerfully reports that 1,000 inserts take over 11 minutes and dodges questions about concurrency and clustering. It is a fun teaching prop about quines, persistence and what a database fundamentally is, and should never hold real data.
Is QuineDB open source?
Yes. QuineDB is open source. License: Eclipse Public License 1.0.
Does QuineDB support ACID transactions?
Partly. QuineDB offers limited ACID guarantees (for example, single-record or single-partition transactions), with strong consistency.
Does QuineDB scale horizontally?
QuineDB 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 QuineDB?
You can self-host it and embed it in your application.
What is QuineDB best for?
QuineDB is a strong fit for teaching quines and self-modifying programs; and conference talks and jokes about database design. Think twice for storing anything you care about.
What are the best alternatives to QuineDB?
Common alternatives to QuineDB include SQLite, LMDB, bbolt, Ehcache and libmdbx. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.
Is QuineDB still maintained?
QuineDB is discontinued. Joke project with no commits since 2017; the script still runs on Bash 4 but nothing is maintained.
How popular is QuineDB?
QuineDB ranks #598 of 844 databases on the WhichDB Score (0.9/100), and #105 among key-value databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.