Noms

discontinued

by Attic Labs · since 2015

Attic Labs' Git-like versioned, forkable, syncable database; archived, but its storage lives on in Dolt.

documentkey-valuedatabase engineopen source (permissive)legacy

discontinued. Archived in August 2021; the README recommends Dolt, an actively maintained fork.

Overview

Noms is a content-addressed database from Attic Labs that applies Git's model to structured data: every commit is kept, any two versions can be diffed efficiently, and replicas can be forked, worked on offline and later merged and synced. Data is stored as typed values in prolly trees (probabilistic B-trees), which give structural sharing between versions and fast diffs over large collections, and it shipped with a Go SDK and a command-line tool. The project stopped being developed and the repository was archived in August 2021, with a README note sending users to Dolt, an actively maintained fork. Noms remains a good reference for prolly-tree design.

Strengths & trade-offs

Strengths

  • +Full version history with cheap diffs, forks and merges
  • +Prolly trees give structural sharing between versions
  • +Content addressing makes sync between replicas efficient

Trade-offs

  • −Archived and unmaintained since 2021
  • −No query language beyond the Go API and CLI
  • −Never reached a stable 1.0 data format

Great for

  • +Studying prolly trees and versioned storage
  • +Understanding the origins of Dolt

Think twice for

  • −Production use
  • −SQL workloads

Capabilities

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

✓Transactions
✓Durable persistence
✓Time travel
✓Branching
✓Offline sync
–Joins
–Secondary indexes
–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
–Online schema changes
–Streaming ingest
–Runs in WebAssembly

Scale & consistency

Comfortable data size
Small · ≤ 100 GB
Horizontal scaling
None
Multi-region
No
Transactions
Limited ACID
Consistency
Eventual
Schema
Flexible
Architecture
Embedded, Client server
Query languages
Go API

Replicas sync by exchanging content-addressed chunks.

Deployment

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

Ecosystem

apis & protocolsGo SDK, noms CLI, HTTP sync
client languagesGo

Alternatives to Noms

Compare all→
DoltRelational18.2

MySQL-compatible SQL database you can branch, diff, merge and clone like a Git repository.

noms vs dolt →
TerminusDBGraph21.0

Git-for-data document and knowledge-graph database with branches, diffs and time travel.

noms vs terminusdb →
XTDBRelational8.3

Bitemporal SQL database on object storage that keeps every version of every row.

noms vs xtdb →
DatomicRelational14.9

Immutable Datalog database from Nubank where every fact is timestamped and queries run in the app process.

noms vs datomic →
LMDBKey-Value39.7

Tiny memory-mapped B+tree with ACID transactions and lock-free readers; reached 1.0 in 2026.

noms vs lmdb →
redbKey-Value13.8

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

noms vs redb →

Noms FAQ

What is Noms?

Noms is a document database by Attic Labs, first released in 2015. Noms is a content-addressed database from Attic Labs that applies Git's model to structured data: every commit is kept, any two versions can be diffed efficiently, and replicas can be forked, worked on offline and later merged and synced. Data is stored as typed values in prolly trees (probabilistic B-trees), which give structural sharing between versions and fast diffs over large collections, and it shipped with a Go SDK and a command-line tool. The project stopped being developed and the repository was archived in August 2021, with a README note sending users to Dolt, an actively maintained fork. Noms remains a good reference for prolly-tree design.

Is Noms open source?

Yes. Noms is open source. License: Apache License 2.0.

Does Noms support ACID transactions?

Partly. Noms offers limited ACID guarantees (for example, single-record or single-partition transactions), with eventual consistency.

Does Noms scale horizontally?

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

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

What is Noms best for?

Noms is a strong fit for studying prolly trees and versioned storage; and understanding the origins of Dolt. Think twice for production use.

What are the best alternatives to Noms?

Common alternatives to Noms include Dolt, TerminusDB, XTDB, Datomic and LMDB. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

Is Noms still maintained?

Noms is discontinued. Archived in August 2021; the README recommends Dolt, an actively maintained fork.

How popular is Noms?

Noms ranks #524 of 844 databases on the WhichDB Score (1.7/100), and #45 among document databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.