byline alternatives and similar modules
Based on the "Streams" category.
Alternatively, view byline alternatives based on common mentions on social networks and blogs.
-
concat-stream
writable stream that concatenates strings or data and calls a callback with the result -
scramjet
Public tracker for Scramjet Cloud Platform, a platform that bring data from many environments together. -
duplexify
Turn a writable and readable stream into a streams2 duplex stream with support for async initialization and streams1/streams2 input -
into-stream
Convert a string/promise/array/iterable/asynciterable/buffer/typedarray/arraybuffer/object into a stream -
binary-split
a fast newline (or any delimiter) splitter stream - like require('split') but specific for binary data -
through2-concurrent
Simple Node.JS stream (streams2) Transform that runs the transform functions concurrently (with a set max concurrency) -
graphicsmagick-stream
DISCONTINUED. Fast conversion/scaling of images using a pool of long lived GraphicsMagick processes.
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of byline or a related project?
README
byline — buffered stream for reading lines
byline
is a simple module providing a LineStream
.
- node v0.10
streams2
(transform stream) - supports
pipe
- supports both UNIX and Windows line endings
- supports Unicode UTS #18 line boundaries
- can wrap any readable stream
- can be used as a readable-writable "through-stream" (transform stream)
- super-simple:
stream = byline(stream);
Install
npm install byline
or from source:
git clone git://github.com/jahewson/node-byline.git
cd node-byline
npm link
Convenience API
The byline
module can be used as a function to quickly wrap a readable stream:
var fs = require('fs'),
byline = require('byline');
var stream = byline(fs.createReadStream('sample.txt', { encoding: 'utf8' }));
The data
event then emits lines:
stream.on('data', function(line) {
console.log(line);
});
Standard API
You just need to add one line to wrap your readable Stream
with a LineStream
.
var fs = require('fs'),
byline = require('byline');
var stream = fs.createReadStream('sample.txt');
stream = byline.createStream(stream);
stream.on('data', function(line) {
console.log(line);
});
Piping
byline
supports pipe
(though it strips the line endings, of course).
var stream = fs.createReadStream('sample.txt');
stream = byline.createStream(stream);
stream.pipe(fs.createWriteStream('nolines.txt'));
Alternatively, you can create a readable/writable "through-stream" which doesn't wrap any specific stream:
var stream = fs.createReadStream('sample.txt');
stream = byline.createStream(stream);
stream.pipe(fs.createWriteStream('nolines.txt'));
var input = fs.createReadStream('LICENSE');
var lineStream = byline.createStream();
input.pipe(lineStream);
var output = fs.createWriteStream('test.txt');
lineStream.pipe(output);
Streams2 API
Node v0.10 added a new streams2 API. This allows the stream to be used in non-flowing mode and is preferred over the legacy pause() and resume() methods.
var stream = fs.createReadStream('sample.txt');
stream = byline.createStream(stream);
stream.on('readable', function() {
var line;
while (null !== (line = stream.read())) {
console.log(line);
}
});
Transform Stream
The byline
transform stream can be directly manipulated like so:
var LineStream = require('byline').LineStream;
var input = fs.createReadStream('sample.txt');
var output = fs.createWriteStream('nolines.txt');
var lineStream = new LineStream();
input.pipe(lineStream);
lineStream.pipe(output);
Empty Lines
By default byline skips empty lines, if you want to keep them, pass the keepEmptyLines
option in
the call to byline.createStream(stream, options)
or byline(stream, options)
.
Tests
npm test
v0.8
If you want to use node-byline
with node v0.8 then you can use the 2.1.x series. Simply use the
following in your package.json
:
"dependencies": {
"byline": ">=2.1.0 <3.0.0"
},
Simple
Unlike other modules (of which there are many), byline
contains no:
- monkeypatching
- dependencies
- non-standard 'line' events which break
pipe
- limitations to only file streams
- CoffeeScript
- unnecessary code
*Note that all licence references and agreements mentioned in the byline README section above
are relevant to that project's source code only.