@ecency/bytebuffer
v6.0.0
Published
The swiss army knife for binary data in JavaScript.
Downloads
513
Readme
Fork Notes:
- Based off of upstream master instead of upstream latest release, because tests were broken on the latest release.
- Removed
new Buffer()
usage. - Dropped super old Node version support to use
Buffer.alloc
/Buffer.from
. - Removed minified/gzipped builds.
- Added
files
topackage.json
for smaller package size.
A fast and complete ByteBuffer implementation using either ArrayBuffers in the browser or node Buffers under node.js, generated from a single source tree through MetaScript.
Features
- Three API-compatible versions:
- bytebuffer Backing buffer: ArrayBuffer, Accessor: Uint8Array
- bytebuffer-dataview Backing buffer: ArrayBuffer, Accessor: DataView
- bytebuffer-node Backing buffer / Accessor: node Buffer
- 8, 16, 32 and 64 bit (through long.js) signed and unsigned integers
- 32 and 64 bit floats
- Varints as used in protobuf (32 and 64 bit, zig-zag)
- Base64, utf8, binary, hex and debug encodings
- Handy string and debugging utilities
- Big and little endianness
- Relative and absolute zero-copy operations wherever possible
- Transparent resizing when using unknown-length data
- Chaining of all operations that do not return a specific value
- Slicing, appending, prepending, reversing, flip, mark, reset, etc.
Usage
The library is compatible with CommonJS and AMD loaders and is exposed globally as dcodeIO.ByteBuffer
if neither is
available.
var ByteBuffer = require("bytebuffer");
var bb = new ByteBuffer()
.writeIString("Hello world!")
.flip();
console.log(bb.readIString()+" from bytebuffer.js");
In the browser, 64 bit integer support is optional and present only if Long.js has been loaded prior to bytebuffer.js.
API
Downloads
Support for IE<10, FF<15, Chrome<9 etc.
- Use bytebuffer-dataview with a polyfill (see)
Contributors
Dretch (IE8 compatibility)
License
License: Apache License, Version 2.0 - Logo derived from W3C HTML5 Logos (CC A 3.0)