mirror of
https://github.com/dolthub/dolt.git
synced 2026-02-11 10:33:08 -06:00
05da222bc41d86eaaa9e33bc7924e0c190f0cf4f
#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 | Type inference Each dataset has a precise schema that is automatically inferred | Atomic commits Immutability enables atomic commits of any size |
| Diff Compare structured datasets of any size efficiently | Schema versioning Narrow or widen schemas instantly, without rewriting data | Sorted indexes Fast range queries, on a single or a combination of attributes |
| Fork Create your own isolated branch of a dataset to work in | Schema validation (soon) Optionally constrain commit types on a per-dataset basis | Insanely easy import Continuous import from anywhere with automatic deduplication |
| Sync Sync disconnected database instances efficiently and correctly | Structural typing Index, search, and match data by structure shape | Awesome export Continuously and efficiently export from Noms to anywhere |
Use Cases
We're just getting started, but here are a few places we think Noms is especially well-suited:
- 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 completely in the open. Come say hi.
Description
Releases
128
Languages
Go
84.1%
Shell
15%
JavaScript
0.3%
Java
0.1%
Python
0.1%