Skip to content
This repository has been 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

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?