Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jsantell/streambuffers
Buffer-based readable and writable streams
https://github.com/jsantell/streambuffers
Last synced: 3 months ago
JSON representation
Buffer-based readable and writable streams
- Host: GitHub
- URL: https://github.com/jsantell/streambuffers
- Owner: jsantell
- License: mit
- Created: 2015-03-17T03:57:35.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2018-11-09T21:48:50.000Z (about 6 years ago)
- Last Synced: 2024-10-08T17:44:33.566Z (3 months ago)
- Language: JavaScript
- Size: 65.4 KB
- Stars: 2
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# streambuffers
[![Build Status](http://img.shields.io/travis/jsantell/streambuffers.svg?style=flat-square)](https://travis-ci.org/jsantell/streambuffers)
[![Build Status](http://img.shields.io/npm/v/streambuffers.svg?style=flat-square)](https://www.npmjs.org/package/streambuffers)Buffer-based writable and readable streams, using streams2-based inheritance.
## Install
```
npm install streambuffers
```## Usage
```javascript
var stream = require("bufferstreams");// Yes, you could just use fs.createReadStream here
var buffer = fs.readFileSync(__dirname + "/file.mp3")// Turn a buffer into a readable stream right away
stream.Readable(buffer, { chunkSize: Math.pow(2, 16), frequency: 1 })
.on("data", function (d) { console.log(d); })
.on("end", function () { console.log("done!"); });// Or push chunks afterwards
var readable = stream.Readable();readable.put(new Buffer(100));
readable.put(new Buffer(100));
// Close by calling `put` with `null`
readable.put(null);readable.on("data", function (d) { console.log(d); });
// Buffer write streams for piping data into a buffer
var writable = stream.Writable();
fs.createReadStream(__dirname + "/file.mp3")
.pipe(writable)
.on("end", function () {
// Fetch buffer with `toBuffer`
var buffer = writable.toBuffer();
});
```## API
### `stream.Writable(options)`
Constructor for Buffer Writable stream; takes options for [WritableStream](https://nodejs.org/api/stream.html#stream_class_stream_writable).
#### `writable.toBuffer()`
Returns the stored buffer after the writable stream is completed.
### `stream.Readable(buffer, options)`
Takes an optional buffer or optional [ReadableStream](https://nodejs.org/api/stream.html#stream_class_stream_readable) options. If supplied `buffer`, no further data can be added, but the stream starts being readable immediately, without having to specify `stream.put(null)` to explicitly close.
Takes additional options of `chunkSize` to specify how many bytes should each push contain, as well as a `frequency` to specify how fast the pushes should occur, in milliseconds.
#### `readable.put(buffer)`
Pushes a buffer to the Readable stream for it to push downstream. Cannot use if supplied a buffer in the constructor. Must call `readable.put(null)` to signify an end of the stream.
## Testing
```
npm test
```## License
MIT License, Copyright (c) 2015 Jordan Santell