Newborn Programming Monsters

    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/from2 package

    2.3.0 • Public • Published

    from2 Flattr this!experimental

    from2 is a high-level module for creating readable streams that properly handle backpressure.

    Convience wrapper for readable-stream's ReadableStream base class, with an API lifted from from and through2.



    stream = from2([opts], read)

    Where opts are the options to pass on to the ReadableStream constructor, and read(size, next) is called when data is requested from the stream.

    • size is the recommended amount of data (in bytes) to retrieve.
    • next(err) should be called when you're ready to emit more data.

    For example, here's a readable stream that emits the contents of a given string:

    var from = require('from2')
    function fromString(string) {
      return from(function(size, next) {
        // if there's no more content
        // left in the string, close the stream.
        if (string.length <= 0) return next(null, null)
        // Pull in a new chunk of text,
        // removing it from the string.
        var chunk = string.slice(0, size)
        string = string.slice(size)
        // Emit "chunk" from the stream.
        next(null, chunk)
    // pipe "hello world" out
    // to stdout.
    fromString('hello world').pipe(process.stdout)

    stream = from2.obj([opts], read)

    Shorthand for from2({ objectMode: true }, read).

    createStream = from2.ctor([opts], read)

    If you're creating similar streams in quick succession you can improve performance by generating a stream constructor that you can reuse instead of creating one-off streams on each call.

    Takes the same options as from2, instead returning a constructor which you can use to create new streams.

    See Also

    • from2-array - Create a from2 stream based on an array of source values.
    • from2-string - Create a stream from a string. Sugary wrapper around from2.


    MIT. See for details.


    npm i from2

    DownloadsWeekly Downloads






    Last publish


    • hughsk
    • mafintosh