filter-frame-stream v1.0.3
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-streamUsage
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.


