mirror of
https://github.com/dolthub/dolt.git
synced 2026-02-11 02:59:34 -06:00
3.7 KiB
3.7 KiB
#Store All the Things
Noms is a content-addressed, immutable, decentralized, strongly-typed database.
In other words, Noms is Git for data.
Setup
git clone https://github.com/attic-labs/noms $GOPATH/src/github.com/attic-labs/noms
go install github.com/attic-labs/noms/cmd/...
noms log http://demo.noms.io/cli-tour:film-locations
Samples | Command-Line Tour | JavaScript SDK Tour | Intro to Noms
Features
| Versioning Each commit is retained and can be viewed or reverted goto: noms log
| Type inference Each dataset has a precise schema that is automatically inferred goto: type accretion | Atomic commits Immutability enables atomic commits of any size goto: Database and Datasets |
| Diff Compare structured datasets of any size efficiently goto: noms diff
| Schema versioning Narrow or widen schemas instantly, without rewriting data goto: type accretion
| Sorted indexes Fast range queries, on a single or a combination of attributes goto: indexing |
| Fork Create your own isolated branch of a dataset to work on goto: noms sync
| Schema validation (soon) Optionally constrain commit types on a per-dataset basis goto: types | Insanely easy import Noms auto-dedupes snapshots and generates a precise changelog goto: fb import sample |
| Sync Sync disconnected database instances efficiently and correctly goto: noms sync
| Structural typing Index, search, and match data by structure shape goto: types | Awesome export Use dataset history to precisely apply sync changes out of Noms Example coming soon |
Use Cases
We're just getting started, but here are a few use cases we think Noms is especially well-suited for:
- Data collaboration—Work on data together. Track changes, fork, merge, sync, etc. The entire Git workflow, but on large-scale, structured data.
- ETL—ETL based on Noms is inherently incremental, undoable, idempotent, and auditable.
- Data integration and enrichment—A content-addressed database should be a really nice place to do data integration. Enrichments can be modeled as extensions to source data which are trivially undoable.
- Decentralized database—Noms is a natural fit to move structured data around certain kinds of widely decentralized applications.
Get Involved
Noms is developed in the open. Come say hi.