whatisgithub

What is chrondb?

avelino/chrondb — explained in plain English

Analysis updated 2026-05-18

97ClojureAudience · developerComplexity · 4/5LicenseSetup · moderate

In one sentence

A key-value database built on Git that keeps every past version of your data, so you can query what any record looked like at any point in time.

Mindmap

mindmap
  root((ChronDB))
    What it does
      Full version history
      Time travel queries
      Git backed storage
    Tech stack
      Clojure
      Git
      Apache Lucene
    Use cases
      Audit trails
      Branching data
      Full text search
    Audience
      Backend developers
      Data engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Store data with a complete, queryable history of every past change.

USE CASE 2

Query what a record looked like at any previous point in time.

USE CASE 3

Branch and merge data the same way you would branch and merge code.

USE CASE 4

Connect existing Redis or PostgreSQL client tools to a Git-backed database.

What is it built with?

ClojureGitApache LuceneDocker

How does it compare?

avelino/chrondbyogthos/flatirondynamic-alpha/ducktape
Stars972719
LanguageClojureClojureClojure
Setup difficultymoderatemoderatemoderate
Complexity4/53/53/5
Audiencedeveloperdeveloperdata

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Docker, or Java 11+ and Git 2.25+ if running from source.

You can use, study, modify, and redistribute it, but if you run a modified version as a network service, you must share that source code too.

So what is it?

ChronDB is a database that stores key-value data and keeps a complete record of every change ever made. Unlike most databases that overwrite old data when you update a record, ChronDB preserves all previous versions. This means you can look up what any piece of data looked like at any point in the past, which the project calls "time travel" queries. Under the hood, ChronDB uses Git as its storage foundation. Git is a tool normally used to track changes to code files, and ChronDB applies the same idea to data. This gives it built-in support for branching (creating isolated copies of your data for testing), merging changes, and a full audit trail of who changed what and when. You can connect to ChronDB in several ways. There is a native API for Clojure applications, an HTTP REST interface for any programming language, a Redis-compatible interface so tools built for Redis work without changes, and a PostgreSQL-compatible interface for SQL-based clients. There are also language bindings for Python and Rust if you want to embed the database directly in an application. ChronDB supports ACID transactions, meaning it guarantees that writes are consistent and durable. It stores any JSON-compatible data without requiring a fixed schema upfront. The search layer runs on Apache Lucene, the same search engine used by many production systems, which enables full-text search with configurable indexes. The quickest way to run it is via Docker, with ports exposed for all three protocol options. A Clojure dependency entry is available for direct use in JVM projects.

Copy-paste prompts

Prompt 1
Run ChronDB with Docker and show me how to save and time-travel a document.
Prompt 2
Explain how ChronDB maps database concepts like tables and schemas onto Git branches and directories.
Prompt 3
Show me how to query a document's full history in ChronDB.
Prompt 4
How do I connect to ChronDB using a Redis client instead of the native Clojure API?

Frequently asked questions

What is chrondb?

A key-value database built on Git that keeps every past version of your data, so you can query what any record looked like at any point in time.

What language is chrondb written in?

Mainly Clojure. The stack also includes Clojure, Git, Apache Lucene.

What license does chrondb use?

You can use, study, modify, and redistribute it, but if you run a modified version as a network service, you must share that source code too.

How hard is chrondb to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is chrondb for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.