{"_id":"stream-channels","_rev":"237618","name":"stream-channels","description":"Simple one-way stream multiplexer with very few features","dist-tags":{"latest":"1.4.1"},"maintainers":[{"name":"mafintosh","email":""}],"time":{"modified":"2023-03-24T16:40:20.000Z","created":"2016-10-24T14:42:57.182Z","1.4.1":"2017-02-02T01:08:44.725Z","1.4.0":"2016-12-13T12:11:09.284Z","1.3.0":"2016-12-05T14:52:30.127Z","1.2.1":"2016-11-04T19:40:41.835Z","1.2.0":"2016-10-28T11:42:22.837Z","1.1.0":"2016-10-24T17:59:50.256Z","1.0.0":"2016-10-24T17:27:49.004Z","0.0.0":"2016-10-24T14:42:57.182Z"},"users":{},"author":{"name":"Mathias Buus","url":"@mafintosh"},"repository":{"type":"git","url":"git+https://github.com/mafintosh/stream-channels.git"},"versions":{"1.4.1":{"name":"stream-channels","version":"1.4.1","description":"Simple one-way stream multiplexer with very few features","main":"index.js","dependencies":{"duplexify":"^3.5.0","inherits":"^2.0.3","length-prefixed-stream":"^1.5.0","readable-stream":"^2.1.5","varint":"^5.0.0"},"devDependencies":{"dev-zero-stream":"^1.1.0","nanobench":"^1.0.3","standard":"^8.4.0","tape":"^4.6.2"},"scripts":{"test":"standard && tape test.js","bench":"nanobench benchmark.js"},"repository":{"type":"git","url":"git+https://github.com/mafintosh/stream-channels.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"license":"MIT","bugs":{"url":"https://github.com/mafintosh/stream-channels/issues"},"homepage":"https://github.com/mafintosh/stream-channels","gitHead":"55061c6ce766068e24bb9af4c277237e5b193b1f","_id":"stream-channels@1.4.1","_shasum":"8d3a1a928dcebc380e273dc5257b434d0463ef2e","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"mafintosh","email":"mathiasbuus@gmail.com"},"dist":{"shasum":"8d3a1a928dcebc380e273dc5257b434d0463ef2e","size":4951,"noattachment":false,"key":"/stream-channels/-/stream-channels-1.4.1.tgz","tarball":"http://name.csiicloud.com:7001/stream-channels/download/stream-channels-1.4.1.tgz"},"maintainers":[{"name":"mafintosh","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/stream-channels-1.4.1.tgz_1485997724505_0.3856257130391896"},"directories":{},"publish_time":1485997724725,"_hasShrinkwrap":false,"_cnpm_publish_time":1485997724725,"_cnpmcore_publish_time":"2021-12-17T00:24:34.576Z"},"1.4.0":{"name":"stream-channels","version":"1.4.0","description":"Simple one-way stream multiplexer with very few features","main":"index.js","dependencies":{"duplexify":"^3.5.0","inherits":"^2.0.3","length-prefixed-stream":"^1.5.0","readable-stream":"^2.1.5","varint":"^5.0.0"},"devDependencies":{"dev-zero-stream":"^1.1.0","nanobench":"^1.0.3","standard":"^8.4.0","tape":"^4.6.2"},"scripts":{"test":"standard && tape test.js","bench":"nanobench benchmark.js"},"repository":{"type":"git","url":"https://github.com/mafintosh/stream-channels.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"license":"MIT","bugs":{"url":"https://github.com/mafintosh/stream-channels/issues"},"homepage":"https://github.com/mafintosh/stream-channels","gitHead":"5cf8ed32e76b3fa4511e869096e64398453847c5","_id":"stream-channels@1.4.0","_shasum":"f09ae92e95ce3c908fe7431b45ff6e98fc33e975","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.6.2","_npmUser":{"name":"mafintosh","email":"mathiasbuus@gmail.com"},"dist":{"shasum":"f09ae92e95ce3c908fe7431b45ff6e98fc33e975","size":4907,"noattachment":false,"key":"/stream-channels/-/stream-channels-1.4.0.tgz","tarball":"http://name.csiicloud.com:7001/stream-channels/download/stream-channels-1.4.0.tgz"},"maintainers":[{"name":"mafintosh","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/stream-channels-1.4.0.tgz_1481631068650_0.48180827545002103"},"directories":{},"publish_time":1481631069284,"_hasShrinkwrap":false,"_cnpm_publish_time":1481631069284,"_cnpmcore_publish_time":"2021-12-17T00:24:34.756Z"},"1.3.0":{"name":"stream-channels","version":"1.3.0","description":"Simple one-way stream multiplexer with very few features","main":"index.js","dependencies":{"duplexify":"^3.5.0","inherits":"^2.0.3","length-prefixed-stream":"^1.5.0","readable-stream":"^2.1.5","varint":"^5.0.0"},"devDependencies":{"dev-zero-stream":"^1.1.0","nanobench":"^1.0.3","standard":"^8.4.0","tape":"^4.6.2"},"scripts":{"test":"standard && tape test.js","bench":"nanobench benchmark.js"},"repository":{"type":"git","url":"https://github.com/mafintosh/stream-channels.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"license":"MIT","bugs":{"url":"https://github.com/mafintosh/stream-channels/issues"},"homepage":"https://github.com/mafintosh/stream-channels","gitHead":"b7333997bf03014a14184a7279c11a86cd2cf770","_id":"stream-channels@1.3.0","_shasum":"0ae8670007786f273feff19e93c296efb0323cd1","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.6.2","_npmUser":{"name":"mafintosh","email":"mathiasbuus@gmail.com"},"dist":{"shasum":"0ae8670007786f273feff19e93c296efb0323cd1","size":4867,"noattachment":false,"key":"/stream-channels/-/stream-channels-1.3.0.tgz","tarball":"http://name.csiicloud.com:7001/stream-channels/download/stream-channels-1.3.0.tgz"},"maintainers":[{"name":"mafintosh","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/stream-channels-1.3.0.tgz_1480949548011_0.15586630487814546"},"directories":{},"publish_time":1480949550127,"_hasShrinkwrap":false,"_cnpm_publish_time":1480949550127,"_cnpmcore_publish_time":"2021-12-17T00:24:35.097Z"},"1.2.1":{"name":"stream-channels","version":"1.2.1","description":"Simple one-way stream multiplexer with very few features","main":"index.js","dependencies":{"duplexify":"^3.5.0","inherits":"^2.0.3","length-prefixed-stream":"^1.5.0","readable-stream":"^2.1.5","varint":"^5.0.0"},"devDependencies":{"standard":"^8.4.0","tape":"^4.6.2"},"scripts":{"test":"standard && tape test.js"},"repository":{"type":"git","url":"https://github.com/mafintosh/stream-channels.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"license":"MIT","bugs":{"url":"https://github.com/mafintosh/stream-channels/issues"},"homepage":"https://github.com/mafintosh/stream-channels","gitHead":"72818948f875cb67ba8ac9f1b31da496cfc05607","_id":"stream-channels@1.2.1","_shasum":"1067f5831c3eee13a88729ab9e25651fe4cb1ef9","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.6.1","_npmUser":{"name":"mafintosh","email":"mathiasbuus@gmail.com"},"dist":{"shasum":"1067f5831c3eee13a88729ab9e25651fe4cb1ef9","size":4555,"noattachment":false,"key":"/stream-channels/-/stream-channels-1.2.1.tgz","tarball":"http://name.csiicloud.com:7001/stream-channels/download/stream-channels-1.2.1.tgz"},"maintainers":[{"name":"mafintosh","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/stream-channels-1.2.1.tgz_1478288441603_0.225112083600834"},"directories":{},"publish_time":1478288441835,"_hasShrinkwrap":false,"_cnpm_publish_time":1478288441835,"_cnpmcore_publish_time":"2021-12-17T00:24:35.297Z"},"1.2.0":{"name":"stream-channels","version":"1.2.0","description":"Simple one-way stream multiplexer with very few features","main":"index.js","dependencies":{"duplexify":"^3.5.0","inherits":"^2.0.3","length-prefixed-stream":"^1.5.0","readable-stream":"^2.1.5","varint":"^4.0.1"},"devDependencies":{"standard":"^8.4.0","tape":"^4.6.2"},"scripts":{"test":"standard && tape test.js"},"repository":{"type":"git","url":"https://github.com/mafintosh/stream-channels.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"license":"MIT","bugs":{"url":"https://github.com/mafintosh/stream-channels/issues"},"homepage":"https://github.com/mafintosh/stream-channels","gitHead":"97e68c14884dc2eed632a34cd62d6ca742427cf4","_id":"stream-channels@1.2.0","_shasum":"35ba831ee21064d7e4c71b19fb8540614b275995","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.6.1","_npmUser":{"name":"mafintosh","email":"mathiasbuus@gmail.com"},"dist":{"shasum":"35ba831ee21064d7e4c71b19fb8540614b275995","size":4546,"noattachment":false,"key":"/stream-channels/-/stream-channels-1.2.0.tgz","tarball":"http://name.csiicloud.com:7001/stream-channels/download/stream-channels-1.2.0.tgz"},"maintainers":[{"name":"mafintosh","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/stream-channels-1.2.0.tgz_1477654940361_0.8953119528014213"},"directories":{},"publish_time":1477654942837,"_hasShrinkwrap":false,"_cnpm_publish_time":1477654942837,"_cnpmcore_publish_time":"2021-12-17T00:24:35.492Z"},"1.1.0":{"name":"stream-channels","version":"1.1.0","description":"Simple one-way stream multiplexer with very few features","main":"index.js","dependencies":{"duplexify":"^3.5.0","inherits":"^2.0.3","length-prefixed-stream":"^1.5.0","readable-stream":"^2.1.5","varint":"^4.0.1"},"devDependencies":{"standard":"^8.4.0","tape":"^4.6.2"},"scripts":{"test":"standard && tape test.js"},"repository":{"type":"git","url":"https://github.com/mafintosh/stream-channels.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"license":"MIT","bugs":{"url":"https://github.com/mafintosh/stream-channels/issues"},"homepage":"https://github.com/mafintosh/stream-channels","gitHead":"c5b27f9e68e2ed33401d6e6cdea5f20a2339ad11","_id":"stream-channels@1.1.0","_shasum":"9a94c8b0b1ec29e05da2cbeb027675c4657680a5","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.6.1","_npmUser":{"name":"mafintosh","email":"mathiasbuus@gmail.com"},"dist":{"shasum":"9a94c8b0b1ec29e05da2cbeb027675c4657680a5","size":4510,"noattachment":false,"key":"/stream-channels/-/stream-channels-1.1.0.tgz","tarball":"http://name.csiicloud.com:7001/stream-channels/download/stream-channels-1.1.0.tgz"},"maintainers":[{"name":"mafintosh","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/stream-channels-1.1.0.tgz_1477331988442_0.7548397018108517"},"directories":{},"publish_time":1477331990256,"_hasShrinkwrap":false,"_cnpm_publish_time":1477331990256,"_cnpmcore_publish_time":"2021-12-17T00:24:35.702Z"},"1.0.0":{"name":"stream-channels","version":"1.0.0","description":"Simple one-way stream multiplexer with very few features","main":"index.js","dependencies":{"duplexify":"^3.5.0","inherits":"^2.0.3","length-prefixed-stream":"^1.5.0","readable-stream":"^2.1.5","varint":"^4.0.1"},"devDependencies":{"standard":"^8.4.0","tape":"^4.6.2"},"scripts":{"test":"standard && tape test.js"},"repository":{"type":"git","url":"https://github.com/mafintosh/stream-channels.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"license":"MIT","bugs":{"url":"https://github.com/mafintosh/stream-channels/issues"},"homepage":"https://github.com/mafintosh/stream-channels","gitHead":"6aa67012a9b653d693dd7ba5b6eae16480ef1642","_id":"stream-channels@1.0.0","_shasum":"e2a9248ee87d28fb633d037924f8ea7a2b74044a","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.6.1","_npmUser":{"name":"mafintosh","email":"mathiasbuus@gmail.com"},"dist":{"shasum":"e2a9248ee87d28fb633d037924f8ea7a2b74044a","size":4067,"noattachment":false,"key":"/stream-channels/-/stream-channels-1.0.0.tgz","tarball":"http://name.csiicloud.com:7001/stream-channels/download/stream-channels-1.0.0.tgz"},"maintainers":[{"name":"mafintosh","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/stream-channels-1.0.0.tgz_1477330067524_0.9153971411287785"},"directories":{},"publish_time":1477330069004,"_hasShrinkwrap":false,"_cnpm_publish_time":1477330069004,"_cnpmcore_publish_time":"2021-12-17T00:24:35.913Z"},"0.0.0":{"name":"stream-channels","version":"0.0.0","description":"Simple one-way stream multiplexer with very few features","main":"index.js","dependencies":{"duplexify":"^3.5.0","inherits":"^2.0.3","length-prefixed-stream":"^1.5.0","readable-stream":"^2.1.5","varint":"^4.0.1"},"devDependencies":{"standard":"^8.4.0","tape":"^4.6.2"},"scripts":{"test":"standard && tape test.js"},"repository":{"type":"git","url":"https://github.com/mafintosh/stream-channels.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"license":"MIT","bugs":{"url":"https://github.com/mafintosh/stream-channels/issues"},"homepage":"https://github.com/mafintosh/stream-channels","gitHead":"f89051cc0961bb0cbc9b9c63eeca3a66dc3b7fde","_id":"stream-channels@0.0.0","_shasum":"8f9fad29442daee8f091e0af947e2ac2e598c57a","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.6.1","_npmUser":{"name":"mafintosh","email":"mathiasbuus@gmail.com"},"dist":{"shasum":"8f9fad29442daee8f091e0af947e2ac2e598c57a","size":3901,"noattachment":false,"key":"/stream-channels/-/stream-channels-0.0.0.tgz","tarball":"http://name.csiicloud.com:7001/stream-channels/download/stream-channels-0.0.0.tgz"},"maintainers":[{"name":"mafintosh","email":""}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/stream-channels-0.0.0.tgz_1477320175704_0.7160090175457299"},"directories":{},"publish_time":1477320177182,"_hasShrinkwrap":false,"_cnpm_publish_time":1477320177182,"_cnpmcore_publish_time":"2021-12-17T00:24:36.140Z"}},"readme":"# stream-channels\n\nSimple one-way stream multiplexer with very few features.\nFor two-way (full duplex) multiplexing see the [multiplex](https://github.com/maxogden/multiplex) module.\n\n```\nnpm install stream-channels\n```\n\n[![build status](http://img.shields.io/travis/mafintosh/stream-channels.svg?style=flat)](http://travis-ci.org/mafintosh/stream-channels)\n\n## Usage\n\n``` js\nvar channels = require('stream-channels')\nvar stream = channels()\n\nstream.on('channel', function (channel) {\n  console.log('new channel')\n  channel.on('data', console.log)\n  channel.on('end', function () {\n    console.log('(no more data)')\n  })\n})\n\nvar ch1 = stream.createChannel()\nvar ch2 = stream.createChannel()\n\nch1.write('hello')\nch2.write('world')\n\nch1.end()\nch2.end()\n\nstream.pipe(stream)\n```\n\n## API\n\n#### `var stream = channels([options], [onchannel])`\n\nCreate a new instance. Options include:\n\n``` js\n{\n  limit: maxChannelsAllowedOpen // defaults to 1024\n}\n```\n\n#### `var writeableStream = stream.createChannel()`\n\nCreate a new channel.\n\n#### `stream.on('channel', readableStream)`\n\nEmitted when a remote creates a new channel. Will emit the data the remote writes to it.\n\n#### `stream.setTimeout(ms, [ontimeout])`\n\nEmit a timeout when if the stream is inactive for ~ms milliseconds.\nWill start a heartbeat as well.\n\n## Wire Protocol\n\nThe wire protocol is as follows.\n\n```\n------------------------------\n| length | channel-id | data |\n------------------------------\n```\n\n* Length is a [varint](https://github.com/chrisdickinson/varint) containing the binary length of channel-id and data.\n* Channel id is a [varint](https://github.com/chrisdickinson/varint) representing the current channel.\n* Data is the buffer you wrote to a channel\n\nChannels are lazily opened., The first time you receive data on a channel id, that channel is opened.\nReceiving an empty data buffer indicates that the channel is closed.\n\nMessages received with length 0 should be ignored and can be used as a keep alive signal.\n\n## Back pressure\n\nBack pressure will trigger on all channels when the *slowest* channel starts to back pressure.\n\n## License\n\nMIT\n","_attachments":{},"homepage":"https://github.com/mafintosh/stream-channels","bugs":{"url":"https://github.com/mafintosh/stream-channels/issues"},"license":"MIT"}