bitfield
bitfield copied to clipboard
A bitfield implementation using buffers, compliant with the BitTorrent spec.
bitfield
A simple bitfield, compliant with the BitTorrent spec.
npm install bitfield
Example
import Bitfield from "bitfield";
const 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 the bitfield.
Class: BitField
Constructors
- constructor
Properties
- buffer
Methods
- forEach
- get
- set
Constructors
constructor
+ new BitField(data?: number | Uint8Array, opts?: BitFieldOptions): BitField
Parameters:
| Name | Type | Default value | Description |
|---|---|---|---|
data |
number | Uint8Array | 0 | Either a number representing the maximum number of supported bytes, or a Uint8Array. |
opts? |
{ grow: number } | { grow: 0 } | grow: If you If you want the Bitfield to grow indefinitely, pass |
Returns: BitField
Properties
buffer
• buffer: Uint8Array
The internal storage of the bitfield.
Methods
forEach
▸ forEach(fn: (bit: boolean, index: number) => void, start?: number, end?: number): void
Loop through the bits in the bitfield.
Parameters:
| Name | Type | Default value | Description |
|---|---|---|---|
fn |
(bit: boolean, index: number) => void | - | Function to be called with the bit value and index. |
start |
number | 0 | Index of the first bit to look at. |
end |
number | this.buffer.length * 8 | Index of the first bit that should no longer be considered. |
Returns: void
get
▸ get(i: number): boolean
Get a particular bit.
Parameters:
| Name | Type | Description |
|---|---|---|
i |
number | Bit index to retrieve. |
Returns: boolean
A boolean indicating whether the ith bit is set.
set
▸ set(i: number, value?: boolean): void
Set a particular bit.
Will grow the underlying array if the bit is out of bounds and the grow option is set.
Parameters:
| Name | Type | Default value | Description |
|---|---|---|---|
i |
number | - | Bit index to set. |
value |
boolean | true | Value to set the bit to. Defaults to true. |
Returns: void
License
MIT