Bitsy is a bitset made of real bits
You can create a bitset in many ways. I've seen some bold implementations use literal strings of 1s and 0s. I've also seen quite a few array based ones, either using booleans or numbers. Bitsy uses real bits backed by a byte buffer.
Usage
First npm install bitsy
var createBitsy = ; // bitsyInstance = createBitsy([size]) (or new createBitsy.Bitsy([size]))// Create a 10 MB bitset.var MEGABYTE_IN_BITS = 1048576 * 8;var bitsy = ; // Bitsy.prototype.setSize(newSize)bitsy; // Truncate bitset and release memorybitsy; // double the bitset size // Bitsy.prototype.set(index, bitValue)bitsy; // trueOrFalse = Bitsy.prototype.get(index)var bitValue = bitsy; // Bitsy.prototype.copyTo(target, [targetFirstBitIndex], [sourceFirstBitIndex], [sourceLastBitIndex])var a = ;a;var b = ;a; // Copy the bit range 80-120 form a to bb === b; // Bitsy.prototype.copyFrom(source, [sourceFirstBitIndex], [sourceLastBitIndex], [targetFirstBitIndex])var b = ;// Copy the bit range 80-120 form a to bb;b === a; // Bitsy.prototype.slice(begin, end)// Slicing works just like JavaScript Array.prototype.slice// except it returns a new Bitsy instance. // create copy of b called 'a'var a = b; // take the 10th bit through the last bit of b and use them to create 'a'var a = b; // take the 10th bit through the 13th bit of b and use them to create 'a'var a = b; // Note that the ending index is excluded // take the last 5 bits of b and use them to create 'a'var a = b; // Bitsy.prototype.toString([type])a; // Hex representationa; // Base64 representationa; // Binary represetnation