{"_id":"redub","_rev":"17-425a7b704b50fd8a5c1603a9118a5e8a","name":"redub","description":"Redundant pub/sub","dist-tags":{"latest":"0.3.0"},"versions":{"0.0.1":{"name":"redub","description":"Redundant pub/sub","version":"0.0.1","author":{"name":"Stéphan Kochen","email":"stephan@angrybytes.com"},"keywords":["pubsub"],"license":"MIT","repository":{"type":"git","url":"git://github.com/AngryBytes/redub.git"},"engines":{"node":">=0.4.0"},"dependencies":{"node-uuid":"1"},"devDependencies":{"tap":"0.0.x"},"main":"index.js","scripts":{"test":"tap test.js"},"_npmUser":{"name":"stephank","email":"stephan@kochen.nl"},"_id":"redub@0.0.1","_engineSupported":true,"_npmVersion":"1.0.106","_nodeVersion":"v0.6.2","_defaultsLoaded":true,"dist":{"shasum":"e605914da8b8ca1dfd902aa435a74c9a34393af3","tarball":"https://registry.npmjs.org/redub/-/redub-0.0.1.tgz","integrity":"sha512-9Mi/Irk1XkzzU5dtxUSjVLJSjkGl/60vikE6jN/ZzUaxmXtB39/7kl9YlHVM8FAqC98Gd9pst3ZRh+bdHG7/NA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDPKKzVlqugRYcOIeTOkYl4Dg9w5Oy3CDUWh9CzLdFS9QIhALUH0Uf5pehLgcIg0EdH7N0xtMQaqzsziT/4v1jA4PLy"}]},"maintainers":[{"name":"stephank","email":"stephan@kochen.nl"}]},"0.0.2":{"name":"redub","description":"Redundant pub/sub","version":"0.0.2","author":{"name":"Stéphan Kochen","email":"stephan@angrybytes.com"},"keywords":["pubsub"],"license":"MIT","repository":{"type":"git","url":"git://github.com/Two-Screen/redub.git"},"engines":{"node":">=0.4.0"},"dependencies":{"node-uuid":"1"},"devDependencies":{"tap":"0.2"},"main":"index.js","scripts":{"test":"tap test.js"},"_npmUser":{"name":"stephank","email":"stephan@kochen.nl"},"_id":"redub@0.0.2","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.9","_defaultsLoaded":true,"dist":{"shasum":"137c28533fc9e911540ccb32435e8c0065123040","tarball":"https://registry.npmjs.org/redub/-/redub-0.0.2.tgz","integrity":"sha512-j4eT68JVb5NQ/HPcx5+vQ1uItL4kTXcp3jwwYlLhLw8d1LW3ttxTU9lQA6OFCUBKQDsSBRZFhYR0JcqRwmKBwQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHRq+EjPQ7nU0lqWv9tFLSjW+Q9LfbsiL0daw7OU0aXRAiApdC60Uf9ixCbIC7Aii1672aJ2zCgRhbSj/BuzlrOYDA=="}]},"maintainers":[{"name":"stephank","email":"stephan@kochen.nl"}]},"0.0.3":{"name":"redub","description":"Redundant pub/sub","version":"0.0.3","author":{"name":"Stéphan Kochen","email":"stephan@angrybytes.com"},"keywords":["pubsub"],"license":"MIT","repository":{"type":"git","url":"git://github.com/Two-Screen/redub.git"},"engines":{"node":">=0.4.0"},"dependencies":{"node-uuid":"1"},"devDependencies":{"tap":"0.2"},"main":"index.js","scripts":{"test":"tap test.js"},"_npmUser":{"name":"stephank","email":"stephan@kochen.nl"},"_id":"redub@0.0.3","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.9","_defaultsLoaded":true,"dist":{"shasum":"b64b416e9fd19abcc859f7a4ce1a3a19a75a5060","tarball":"https://registry.npmjs.org/redub/-/redub-0.0.3.tgz","integrity":"sha512-YSBpHeYgAIF24+c8f+2hVa1abtv0KWkp2LM6e5wnvl2MyykpS2jTzOXw/Lv8kJ1hUR5Ea1udj3KUIFpccKF5jQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbGcygxWWKxFEZ58zEn9+rzVb2WXhIXEjzpd8JwqldLwIgcGGnCYw77trhzU/1E+46r1ZmULsoAPceM5CRJgwiOO4="}]},"maintainers":[{"name":"stephank","email":"stephan@kochen.nl"}]},"0.0.4":{"name":"redub","description":"Redundant pub/sub","version":"0.0.4","author":{"name":"Stéphan Kochen","email":"stephan@angrybytes.com"},"keywords":["pubsub"],"license":"MIT","repository":{"type":"git","url":"git://github.com/Two-Screen/redub.git"},"engines":{"node":">=0.4.0"},"dependencies":{"node-uuid":"1"},"devDependencies":{"tap":"0.2"},"main":"index.js","scripts":{"test":"tap test.js"},"_npmUser":{"name":"stephank","email":"stephan@kochen.nl"},"_id":"redub@0.0.4","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.16","_nodeVersion":"v0.6.15","_defaultsLoaded":true,"dist":{"shasum":"34ae8daaec7d215b56bfc891ce1d3cfdf21a0e29","tarball":"https://registry.npmjs.org/redub/-/redub-0.0.4.tgz","integrity":"sha512-UJzK9JY+jli1wG4O5OT9vavcj0T0HQnO1KzRS7rzoR0sGMWKYtcaZqDUbT/xHAdJ7qoxbNQIFsmv0yIqzuoy9w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHyml63hTY65nlNR87klrxAivYVePrLad23a4gIrr/hJAiBh/XK5J7g68JCDHrwoB/Tq8JqSidopUE4tNZWc5guUpA=="}]},"maintainers":[{"name":"stephank","email":"stephan@kochen.nl"}]},"0.1.0":{"name":"redub","description":"Redundant pub/sub","version":"0.1.0","author":{"name":"Stéphan Kochen","email":"stephan@angrybytes.com"},"keywords":["pubsub"],"license":"MIT","repository":{"type":"git","url":"https://github.com/Two-Screen/redub.git"},"dependencies":{"node-uuid":"1"},"devDependencies":{"tap":"0.4"},"main":"index.js","scripts":{"test":"tap test.js"},"bugs":{"url":"https://github.com/Two-Screen/redub/issues"},"homepage":"https://github.com/Two-Screen/redub","_id":"redub@0.1.0","_shasum":"63048c89c73a24e811bd60a19869c04e0d517660","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"stephank","email":"stephan@kochen.nl"},"maintainers":[{"name":"stephank","email":"stephan@kochen.nl"}],"dist":{"shasum":"63048c89c73a24e811bd60a19869c04e0d517660","tarball":"https://registry.npmjs.org/redub/-/redub-0.1.0.tgz","integrity":"sha512-GWZmm+fH/QLwuZt0WEmQ+jkzNS5qpGwp5iN2cyqpFxduphDozdxVFpyL0nelX5fJi0KHXxxXIvk7wfUmf5wCUA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCIslo5Qcyy0WRtlNYh36ixU8x0/Bfy75wJ+F72nEQ2OgIhAJgO+9IwhYkJR2euB/SOCVPGFRT9uKzEEOQQizWxVMOi"}]}},"0.2.0":{"name":"redub","description":"Redundant pub/sub","version":"0.2.0","author":{"name":"Stéphan Kochen","email":"stephan@angrybytes.com"},"keywords":["pubsub"],"license":"MIT","repository":{"type":"git","url":"https://github.com/Two-Screen/redub.git"},"dependencies":{"node-uuid":"1"},"devDependencies":{"tap":"0.4"},"main":"index.js","scripts":{"test":"tap test.js"},"gitHead":"8a742b8e8b26af1d12f72c5aa040e3e01ca93b26","bugs":{"url":"https://github.com/Two-Screen/redub/issues"},"homepage":"https://github.com/Two-Screen/redub","_id":"redub@0.2.0","_shasum":"e84a41f0bbc82a4a7abbd96ef46f18bbd36f5c17","_from":".","_npmVersion":"2.0.0-alpha.6.0","_npmUser":{"name":"stephank","email":"stephan@kochen.nl"},"maintainers":[{"name":"stephank","email":"stephan@kochen.nl"}],"dist":{"shasum":"e84a41f0bbc82a4a7abbd96ef46f18bbd36f5c17","tarball":"https://registry.npmjs.org/redub/-/redub-0.2.0.tgz","integrity":"sha512-Y22y4McHz+YQTQhCJIKQGwJVLTnM3j7Gxyt68IVHXDzVl+fW9JpExssOAi0KWCOi548qMOfEsG3GE8adaw1rqw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0Ek2tdEm2vRKeIb+D4s4s0+VvhAvIaCIAoGC7vj5QJwIhAJuKm99n2ZOhxFiTQZlLlcQKFvZWTswV5l9Y3IwM8de8"}]}},"0.3.0":{"name":"redub","description":"Redundant pub/sub","version":"0.3.0","author":{"name":"Stéphan Kochen","email":"stephan@angrybytes.com"},"keywords":["pubsub"],"license":"MIT","repository":{"type":"git","url":"https://github.com/Two-Screen/redub.git"},"dependencies":{"node-uuid":"1"},"devDependencies":{"tap":"0.4"},"main":"index.js","scripts":{"test":"tap test.js"},"gitHead":"6ec98aa1409c2fad41049b1afecbc93911665032","bugs":{"url":"https://github.com/Two-Screen/redub/issues"},"homepage":"https://github.com/Two-Screen/redub","_id":"redub@0.3.0","_shasum":"54768f94f73dae7639d24c44c8239677e624094c","_from":".","_npmVersion":"2.0.0-alpha.6.0","_npmUser":{"name":"stephank","email":"stephan@kochen.nl"},"maintainers":[{"name":"stephank","email":"stephan@kochen.nl"}],"dist":{"shasum":"54768f94f73dae7639d24c44c8239677e624094c","tarball":"https://registry.npmjs.org/redub/-/redub-0.3.0.tgz","integrity":"sha512-BTed9pcUEix4jwPzMOHfPTxYCEd47UJ7YpIdmhGi/OWkwlbL7vv0JO6PqPjxlnKxaQ1wTQDCUZa8MFkwAWuKFA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVB21dKudtP4Ka08/38c0VI0oZZl4JR7Pa+WlSgnvtrwIhAPwCSeLH3EQQrl+e2uRmQtFX1g7JuuI5nMptTIitkNxN"}]}}},"readme":"**Redub** turns a bunch of objects implementing a simple pub/sub interface\ninto a redundant pub/sub transport. It works dandy with [redis-pubsub], but\nthere's no hard dependency. [![Build Status](https://secure.travis-ci.org/Two-Screen/redub.png)](http://travis-ci.org/Two-Screen/redub)\n\n    var pubsub = require('redis-pubsub');\n    var redub = require('redub');\n\n    var transport1 = pubsub.createChannel(...);\n    var transport2 = pubsub.createChannel(...);\n\n    var channel = redub(transport1, transport2);\n\n    channel.on('message', function(msg, id) {\n        console.log(msg);\n        channel.end();\n    });\n\n    var id = channel.send('Hello world!');\n\n---\n\nBehind the scenes, messages are wrapped in an envelope with a unique ID:\n\n    ['2d1222ff-e0cd-4594-a1fb-19335c98e58c','Hello world!']\n\nThese IDs are tracked for a short time, and duplicates are dropped. The\ntimeout is configurable:\n\n    // Defaults to 10 seconds. 0 means never time out.\n    // In practice, IDs are tracked anywhere between timeout and 2 × timeout.\n    channel.timeout = 10000;\n\nThe method with which IDs are generated is also configurable:\n\n    channel.uid = function(message) {\n        // generate and return a unique ID string.\n    };\n\n---\n\nRedub will accept any object that quacks like an EventEmitter and implements\nthe following:\n\n * method `send(message)` - must serialize (e.g. `JSON.stringify`) the message\n   and publish it.\n * event `message(message)` - must be passed a deserialized message.\n\n [redis-pubsub]: https://github.com/Two-Screen/redis-pubsub\n","maintainers":[{"name":"stephank","email":"stephan@kochen.nl"}],"time":{"modified":"2022-06-26T09:54:24.941Z","created":"2011-12-07T21:52:05.592Z","0.0.1":"2011-12-07T21:52:07.000Z","0.0.2":"2012-02-17T09:30:03.448Z","0.0.3":"2012-02-17T10:08:28.938Z","0.0.4":"2012-04-24T08:06:54.370Z","0.1.0":"2014-05-09T07:30:37.635Z","0.2.0":"2014-08-20T09:44:07.268Z","0.3.0":"2014-08-20T09:58:46.279Z"},"author":{"name":"Stéphan Kochen","email":"stephan@angrybytes.com"},"repository":{"type":"git","url":"https://github.com/Two-Screen/redub.git"},"homepage":"https://github.com/Two-Screen/redub","keywords":["pubsub"],"bugs":{"url":"https://github.com/Two-Screen/redub/issues"},"license":"MIT","readmeFilename":"README.md"}