Git Product home page Git Product logo

stream-chunker's Introduction

stream-chunker

A transform stream which chunks incoming data into chunkSize byte chunks.

NPM

Build Status Coverage Status Dependency Status devDependency Status

API

var chunker = require('stream-chunker')(chunkSize, [opts])

Returns a new chunker. Chunker is a duplex (transform) stream. You can write data into the chunker, and regardless of the incoming data, the readable side will emit data in chunkSize byte chunks. This modules has no notion of objectMode, everything written to this stream must be a string or a buffer.

  • chunkSize: integer - Size in bytes of the desired chunks.
  • opts
    • flush: boolean - Optional. Flush incomplete chunk data on stream end. Default is false.
    • align: boolean - Optional. Pad incomplete chunk data on stream end. Should be used in combination with flush. Default is false.
    • encoding: string - Optional. Encoding of String chunks. Must be a valid Buffer encoding, such as utf8 or ascii.

Simple Example

var fs = require('fs');
var chunker = require('stream-chunker');

fs.createReadStream('/someFile')
  	.pipe(chunker(16))
  	.pipe(somethingThatExpects16ByteChunks());

Full Working Example

// Create sample input stream with 10 byte chunks
var Lorem = require('loremipstream');
var sampleStream = new Lorem({
	size: 100,
	dataSize: 10,
	dataInteval: 100
});

// Create stream chunker with 16 byte chunks
var Chunker = require('stream-chunker');
var opts = {
	flush: true,
	encoding: 'utf8'
};
var chunker = Chunker(16, opts);
// make sure to add any data event listeners to chunker stream
// before you write any data to it
chunker.on('data', function(data) {
    // do something with a chunk of data
    // notice the last chunk is the flushed data
    console.log('Chunk: ' + data);
});
sampleStream.pipe(chunker); // write some data to chunker to get chunked

License

MIT

stream-chunker's People

Contributors

klyngbaek avatar jviotti avatar j0t3x avatar

Watchers

James Cloos avatar  avatar

Forkers

joshbenaron

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.