KirbyBase

discontinued

by Jamey Cribbs (NetPro Technologies) · since 2003 · also known as Kirby Base

Tiny pure-Ruby and pure-Python DBMS that stores tables as plain-text files.

relationalembedded libraryopen source (permissive)legacy

discontinued. No releases since the 2.6.1 Ruby gem (2012); original site offline. Use SQLite or a small JSON store instead.

Overview

KirbyBase is Jamey Cribbs's small database management system, written once in pure Python and again in pure Ruby, that keeps each table as a human-readable delimited text file. You define typed fields, then insert, update and select records; the Ruby version uses code blocks as query predicates, supports lookups and links between tables, computed fields and indexes, and can run embedded in a script or as a simple client-server process. It was popular in the mid-2000s Ruby scene for scripts and small apps that wanted structure without SQLite. The last Ruby gem (2.6.1) dates from 2012 and the Python package stopped at 1.9; the original netpromi.com site is gone.

Strengths & trade-offs

Strengths

  • +Data files are plain text you can read and edit by hand
  • +Pure Ruby/Python with no native dependencies
  • +Ruby blocks as query predicates feel natural in scripts
  • +Embedded or simple client-server modes

Trade-offs

  • −Unmaintained since 2012
  • −No transactions or crash safety; whole-file rewrites
  • −Performance falls off quickly as tables grow

Great for

  • +Legacy Ruby or Python scripts already using it
  • +Teaching what a minimal DBMS needs

Think twice for

  • −Concurrent or multi-user applications
  • −Any dataset beyond a few megabytes

Capabilities

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

✓Joins
✓Secondary indexes
✓Durable persistence
–Transactions
–Full-text search
–Vector search
–Geospatial
–JSON
–Change data capture
–Triggers
–Stored procedures
–Materialized views
–TTL / expiry
–Pub/Sub
–Columnar storage
–In-memory
–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, Client server
Query languages
Ruby blocks, Python API

Plain-text files; fine for thousands of records, slow beyond that.

Deployment

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

Ecosystem

apis & protocolsRuby API, Python API
client languagesRuby, Python

Alternatives to KirbyBase

Compare all→
SQLiteRelational75.5

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

kirbybase vs sqlite →
TinyDBDocument21.3

Pure-Python document store that keeps every table in one human-readable JSON file.

kirbybase vs tinydb →
lowdbDocument19.1

Tiny type-safe local JSON database for Node, Electron and the browser using plain JavaScript.

kirbybase vs lowdb →
Lazer DatabaseDocument1.4

PHP library that treats JSON files as database tables, with an ORM-style query builder and relations.

kirbybase vs lazer →
SleekDBDocument2.7

Dependency-free PHP library that stores schemaless documents as plain JSON files on disk.

kirbybase vs sleekdb →
Microsoft AccessRelational45.8

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

kirbybase vs microsoft-access →

KirbyBase FAQ

What is KirbyBase?

KirbyBase is a relational database by Jamey Cribbs (NetPro Technologies), first released in 2003. KirbyBase is Jamey Cribbs's small database management system, written once in pure Python and again in pure Ruby, that keeps each table as a human-readable delimited text file. You define typed fields, then insert, update and select records; the Ruby version uses code blocks as query predicates, supports lookups and links between tables, computed fields and indexes, and can run embedded in a script or as a simple client-server process. It was popular in the mid-2000s Ruby scene for scripts and small apps that wanted structure without SQLite. The last Ruby gem (2.6.1) dates from 2012 and the Python package stopped at 1.9; the original netpromi.com site is gone.

Is KirbyBase open source?

Yes. KirbyBase is open source. License: Ruby License (Ruby); PSF License (Python).

Does KirbyBase support ACID transactions?

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

Does KirbyBase scale horizontally?

KirbyBase 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 KirbyBase?

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

What is KirbyBase best for?

KirbyBase is a strong fit for legacy Ruby or Python scripts already using it and teaching what a minimal DBMS needs. Think twice for concurrent or multi-user applications.

What are the best alternatives to KirbyBase?

Common alternatives to KirbyBase include SQLite, TinyDB, lowdb, Lazer Database and SleekDB. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

Is KirbyBase still maintained?

KirbyBase is discontinued. No releases since the 2.6.1 Ruby gem (2012); original site offline. Use SQLite or a small JSON store instead.

How popular is KirbyBase?

KirbyBase has little measurable public adoption today, so it ranks near the bottom of the WhichDB Score.