2016-06-05 15:34:24 -07:00
2016-06-05 02:37:28 -07:00
2016-06-05 15:00:11 -07:00
2016-06-05 02:23:09 -07:00
2016-06-05 02:37:28 -07:00
2016-06-05 02:46:02 -07:00
2016-06-05 02:37:28 -07:00
2016-06-05 15:34:24 -07:00

#Store All the Things

Noms is a content-addressed, immutable, decentralized, strongly-typed database.

In other words, Noms is Git for data.

Setup

  1. Install Go 1.6+
  2. Ensure your $GOPATH is configured
  3. Type type type:
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.

Description
Dolt – Git for Data
Readme Apache-2.0 427 MiB
Latest
2026-02-09 20:09:01 -06:00
Languages
Go 84.1%
Shell 15%
JavaScript 0.3%
Java 0.1%
Python 0.1%