1. 6
  1.  

  2. 5

    boltdb is a great example of a limited library that is “finished” from its developer’s perspective and Ben is a Go superstar.

    One caveat: an LSM tree design will be much faster if you are inserting a lot of data. I found RocksDB to be 1000x faster under heavy load.

    https://en.wikipedia.org/wiki/Log-structured_merge-tree

    1. 3

      Bolt is a super useful, simple data store. I’ve written a small wrapper around it called nut to make it simple to store objects (by marshaling them to json, but it may make more sense to store them as gobs or protobufs in the future) rather than just bytes. It’s pretty experimental, but I’ve been using it in personal projects for a while.

      https://github.com/belak/nut/

      Also, bolt isn’t really being updated any more, but it’s still considered fairly stable. There’s a coreos fork called bbolt which aims to keep updating it.

      1. 1

        It is also worth mentioning that https://github.com/asdine/storm exists, and does JSON, gob and protobuf encoding. It also gives you a KV string store that handles the copying of bytes.