A simple goroutine (and thread)-safe key value store using generics that supports concurrent reads and writes. Primarily built to support heavily read-skewed applications.


Wanted to give generics a try and learn more about dealing with concurrency in go.


Probably a good idea to use a real library instead, this is more of an experiment. Check out which employs sharding and is generally more high performance. I do plan on extending this though, which I detail below.

Path to production-ready KVS/TODO

  • generic hashFunctions
  • add value for embedded applications by reducing memory footprint
  • add tests!
  • memory optimizations?
  • better collision avoidance


View Github