mirror of
https://github.com/dolthub/dolt.git
synced 2026-02-11 10:33:08 -06:00
ea2da0605543ba413c1aa660dcaf25afb1bd1745
…
#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 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.
Description
Releases
128
Languages
Go
84.1%
Shell
15%
JavaScript
0.3%
Java
0.1%
Python
0.1%