A Bitcask (LSM+WAL) Key/Value Store written in Go.
- Embeddable
- Builtin CLI
$ go get github.com/prologic/bitcask
Install the package into your project:
$ go get github.com/prologic/bitcask
package main
import (
"log"
"github.com/prologic/bitcask"
)
func main() {
db, _ := bitcask.Open("/tmp/db")
db.Set("Hello", []byte("World"))
db.Close()
}
See the godoc for further documentation and other examples.
$ bitcask -p /tmp/db set Hello World
$ bitcask -p /tmp/db get Hello
World
Benchmarks run on a 11" Macbook with a 1.4Ghz Intel Core i7:
$ make bench
...
BenchmarkGet-4 300000 5065 ns/op 144 B/op 4 allocs/op
BenchmarkPut-4 100000 14640 ns/op 699 B/op 7 allocs/op
- ~30,000 reads/sec for non-active data
- ~180,000 reads/sec for active data
- ~60,000 writes/sec
bitcask is licensed under the MIT License