Streaming length prefixed buffers with pull-streams
$ npm install --save pull-length-prefixed
var pull = require('pull-stream')
var lp = require('pull-length-prefixed')
// encode
pull(
pull.values([Buffer.from('hello world')]),
lp.encode(),
pull.collect(function (err, encoded) {
if (err) throw err
console.log(encoded)
// => [Buffer <0b 68 65 6c 6c 6f 20 77 6f 72 6c 64>]
})
)
// decode
pull(
pull.values(encoded), // e.g. from above
lp.decode(),
pull.collect(function (err, decoded) {
if (err) throw err
console.log(decoded)
// => [Buffer <68 65 6c 6c 6f 20 77 6f 72 6c 64>]
})
)
opts: Object
, optionalfixed: false
: If true uses a fixed 4 byte Int32BE prefix instead of varint
By default all messages will be prefixed with a varint. If you want to use a fixed length prefix you can specify this through the opts
.
Returns a pull-stream through.
opts: Object
, optionalfixed: false
: If true uses a fixed 4 byte Int32BE prefix instead of varintmaxLength
: If provided, will not decode messages longer than the size specified, if omitted will use the current default of 4MB.
By default all messages will be prefixed with a varint. If you want to use a fixed length prefix you can specify this through the opts
.
Returns a pull-stream through.
reader: [pull-reader](https://github.com/dominictarr/pull-reader)
opts: Object
, optional. Same as fordecode
.cb: Function
: Callback called with(err, message)
.
This uses a pull-reader instance to reade and decode a single message. Useful when using pull-handshake with length prefixed messages.
PRs and issues gladly accepted! Check out the issues.
MIT © 2016 Friedel Ziegelmayer