Split binary streams by length fields in messages' headers.
Use this for example to parse streaming data without writing a streaming parser if your chunks are reasonably small.
var split = require('split-by-header')
binaryStream
.pipe(split({ type : 'UInt24BE', offset : 1 }))
.pipe(process.stdout)
cfg can be an object with those fields:
type: Type of the length value. Supported are {8,16,24,32} bit (un)signed integers in BE & LE. See node apioffset: Position to start reading from (optional)modifier: the real length is returned by the modifier (optional)If cfg is a string, it sets cfg.type:
split('UInt24BE')
(MIT)