Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
a very simple bitfield implementation using buffers
JavaScript
branch: master

1.1.2

latest commit c0ea56e6b0
@feross feross authored
Failed to load latest commit information.
.travis.yml travis: run tests inside a container
LICENSE Add MIT License
index.js perf: don't clear buffers in the browser
package.json 1.1.2
readme.md improved readme
tests.js fix tests

readme.md

bitfield

a very simple bitfield, compliant with the Bittorrent spec

npm install bitfield

browser support

Example

var Bitfield = require("bitfield");

var field = new Bitfield(256); //create a bitfield with 256 bits

field.set(128); //set the 128th bit
field.set(128, true); //same as above

field.get(128); //true
field.get(200); //false (all values are initialised to `false`)
field.get(1e3); //false (out-of-bounds is also false)

field.set(128, false); //set the 128th bit to 0 again

field.buffer; //the buffer used by bitfield

Methods

Bitfield(data): data can be either a node.js buffer, WebGL Int8Array or numeric array, or a number representing the maximum number of supported bytes.

Bitfield#get(index): Returns a boolean indicating whether the bit is set.

Bitfield#set(index[, value]): value defaults to true. Sets the bit to 1 for a value of true or 0 for false.

Auto-grow mode

Bitfield(data, { grow: size }): If you set an index that is out-of-bounds, the Bitfield will automatically grow so that the bitfield is big enough to contain the given index, up to the given size (in bit). If you want the Bitfield to grow indefinitely, pass Infinity as the size.

Properties

Bitfield#buffer: The contents of the bitfield.

Bitfield#grow: The passed growth option (defaults to 0).

License

MIT

Something went wrong with that request. Please try again.