Skip to content

A Transform Stream that splits a stream into chunks based on a delimiter

License

Notifications You must be signed in to change notification settings

hgranlund/node-binary-split

Repository files navigation

Binary Split

GitHub stars npm version Build Coverage Status Known Vulnerabilities License: MIT

A Transform Stream that splits a binary stream into chunks based on a delimiter. The delimiter can be a String or a Buffer.

Install

npm install node-binary-split --save

Usage

import split from 'node-binary-split';

split(delimiter);

or

import { BinarySplit } from 'node-binary-split';

new BinarySplit(delimiter);

delimiter can be a string or a buffer.

Sample

import {BinarySplit } = from 'node-binary-split';
fs.createReadStream(file)
  .pipe(new BinarySplit('\n'))
  .on('data', function(line) {
    //each chunk now is a separate line!
  });
const split = require('node-binary-split');
fs.createReadStream(file)
  .pipe(split('\n'))
  .on('data', function (line) {
    //each chunk now is a separate line!
  });

Benchmarks

Benchmarking node-binary-split against other similar packages with benchmark.js. One with newline as delimiter and one with a longer string

Split on a string:

node-binary-split x 1,368 ops/sec ±3.68% (70 runs sampled)
binary-split x 773 ops/sec ±2.75% (74 runs sampled)
split x 504 ops/sec ±2.02% (75 runs sampled)
split2 x 486 ops/sec ±1.95% (75 runs sampled)
Fastest is node-binary-split
Split on newline:

node-binary-split x 1,682 ops/sec ±3.51% (72 runs sampled)
binary-split x 472 ops/sec ±2.68% (76 runs sampled)
split x 574 ops/sec ±3.34% (73 runs sampled)
split2 x 477 ops/sec ±2.51% (77 runs sampled)
Fastest is node-binary-split

Development

Test

Run tests by:

npm test

Run benchmarks by:

npm run bench

Support

Submit an issue

Contribute

Contribute usage docs

License

MIT License

Simen Haugerud Granlund © 2019

Credits

About

A Transform Stream that splits a stream into chunks based on a delimiter

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published