filter-frame-stream
v1.0.3
Published
Filter data frames from a stream of buffers by a head marker and optional tail—or trailing—marker, keeping these bytes intact in the returned chunks. This is useful when splitting up a stream of data with embedded frames used by some protocols (especially
Downloads
5
Maintainers
Readme
Filter Frame Stream
Overview
Filter data frames from a stream of buffers by a head marker and optional tail—or trailing—marker, keeping these bytes intact in the returned chunks. This is useful when splitting up a stream of data with embedded frames used by some protocols (especially useful for variable length frame protocols), or even for extracting other data, such as JPEG images.
Installation
npm install --save filter-frame-stream
Usage
To filter the frame buffers you desire, provide your frame start/head and end/tail as arguments, along with an optional encoding. The arguments are as follows:
filterFrame(start, end, enc)
If not provided, start
will default to 0x00
. Without specifying an
end
value (or if end
is set to false
) the buffers will include
everything up until the next occurrence of the start
delimiter/marker.
Both start
and end
may be either a string or buffer. If not
provided, enc
will default to utf8
, although any node-compatible
encoding works.
The following is a silly example of how you would filter all websocket frames:
const filterFrame = require('filter-frame-stream')
process.stdin
.pipe(filterFrame(Buffer.from('00', 'FF', 'hex')))
.pipe(process.stdout)
For more examples, see the tests.
License
ISC, see LICENSE for details.