Skip to content

KarpelesLab/bitmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status GoDoc Coverage Status

Bitmap

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)

Example

	m := bitmap.New(127)

	m.Set(42, true)

	if m.Get(42) {
		// OK
	}

Why?

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.

Releases

No releases published

Packages

No packages published