Skip to content

Create linked lists of Buffer objects and write binary parsers for these lists

License

Notifications You must be signed in to change notification settings

Worlize/node-bufferlist

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BufferList

BufferList provides an interface to treat a linked list of buffers as a single stream. This is useful for events that produce a many small Buffers, such as network streams.

Installation

Install using npm: npm install bufferlist

Or, check out the repository and have npm link to your development copy. This is useful for developing the library, and is necessary when running the tests, since they refer to the installed names of the library files. git clone http://github.com/substack/node-bufferlist.git cd node-bufferlist npm link .

Simple Bufferlist Example

#!/usr/bin/env node
var sys = require('sys');
var Buffer = require('buffer').Buffer;
var BufferList = require('bufferlist').BufferList;

var b = new BufferList;
['abcde','xyz','11358'].forEach(function (s) {
    var buf = new Buffer(s.length);
    buf.write(s);
    b.push(buf);
});

sys.puts(b.take(10)); // abcdexyz11

Binary

This distribution also contains a Binary module for parsing these bufferlists.

Simple Binary Example

#!/usr/bin/env node

var sys = require('sys');
var Buffer = require('buffer').Buffer;
var BufferList = require('bufferlist').BufferList;
var Binary = require('bufferlist/binary').Binary;

var bufferList = new BufferList;
var binary = Binary(bufferList)
    .getWord16be('xLen')
    .getBuffer('xs', 'xLen')
    .tap(function (vars) {
        vars.moo = 'xs:' + vars.xLen + ':' + vars.xs;
    })
    .end()
;

var buf = new Buffer(6);
buf.write('\x00\x04meow', 'binary');
bufferList.push(buf);

sys.puts(binary.vars.moo); // xs:4:meow

See Also

See the examples/ directory for more involved examples.

See http://github.com/substack/node-rfb for a practical application of this distribution.

About

Create linked lists of Buffer objects and write binary parsers for these lists

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published