Simple bitmaps in Go.
Provides the following methods on bitmap objects:
- Get(bit int)
- Set(bit int, value bool)
- Toggle(bit)
- GetAtomic(bit int)
- SetAtomic(bit int, value bool)
- ToggleAtomic(bit int)
m := bitmap.New(127)
m.Set(42, true)
if m.Get(42) {
// OK
}
There are already a few bitmap implementations in Go available out there, however they have some shortfalls and/or are too complex for what a bitmap should do.
- boljen's go-bitmap has separate implementations for Bitmap/Concurrent/Threadsafe, and complexifies a lot what should be very simple.
- ShawnMilo's bitmap has a nice feel but lacks atomic methods and adds string methods using json/gzip/base64 (?)
- Roaring Bitmaps are simply too complex for what I need bitmaps for. You should however definitely use that if you store more than 200k bits or so in total.