Skip to content
This repository was archived by the owner on Sep 23, 2022. It is now read-only.
/ nano Public archive

🍀 Fast, decentralized and git-trackable database.

License

Notifications You must be signed in to change notification settings

aerogo/nano

Folders and files

NameName
Last commit message
Last commit date

Latest commit

98edba1 · Oct 21, 2019
May 24, 2019
Sep 30, 2019
Oct 21, 2019
May 25, 2019
Aug 25, 2019
May 25, 2019
May 25, 2019
Oct 27, 2017
Sep 4, 2019
May 25, 2019
Aug 25, 2019
Aug 25, 2019
May 26, 2019
Aug 25, 2019
Dec 11, 2018
May 24, 2019
May 8, 2019
Aug 25, 2019
Sep 30, 2019
Sep 30, 2019

Repository files navigation

nano

Godoc Report Tests Coverage Sponsor

High-performance database. Basically network and disk synchronized hashmaps.

Benchmarks

BenchmarkCollectionGet-12               317030264                3.75 ns/op            0 B/op          0 allocs/op
BenchmarkCollectionSet-12               11678318               102 ns/op              32 B/op          2 allocs/op
BenchmarkCollectionDelete-12            123748969                9.50 ns/op            5 B/op          0 allocs/op
BenchmarkCollectionAll-12                1403905               859 ns/op            2144 B/op          2 allocs/op

Features

  • Low latency commands
  • Every command is "local first, sync later"
  • Data is stored in memory
  • Data is synchronized between all nodes in a cluster
  • Data is saved to disk persistently using JSON
  • Timestamp based conflict resolution
  • Uses the extremely fast sync.Map

Terminology

  • Namespace: Contains multiple collections (e.g. "google")
  • Collection: Contains homogeneous data for a data type (e.g. "User")
  • Key: The string that lets you look up a single object in a collection

All of the above require a unique name. Given namespace, collection and key, you can access the data stored for it.

Style

Please take a look at the style guidelines if you'd like to make a pull request.

Sponsors

Cedric Fung Scott Rayapoullé Eduard Urbach
Cedric Fung Scott Rayapoullé Eduard Urbach

Want to see your own name here?