{"_id":"remote-events","_rev":"24-cff3223ea8c47ff763b28d35498af031","name":"remote-events","description":"a two ended EventEmitter connected through a Stream","dist-tags":{"latest":"1.1.4"},"versions":{"0.0.0":{"name":"remote-events","version":"0.0.0","description":"a two ended EventEmitter connected through a Stream","homepage":"http://github.com/dominictarr/remote-events","repository":{"type":"git","url":"git://github.com/dominictarr/remote-events.git"},"dependencies":{"event-stream":"2"},"devDependencies":{"assertions":"2"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"dominictarr.com"},"_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"_id":"remote-events@0.0.0","optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.23","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"7efaf953e551e475d31d860121dc10196efd6880","tarball":"https://registry.npmjs.org/remote-events/-/remote-events-0.0.0.tgz","integrity":"sha512-+ZKDSYaK692f+YDNRrL1zdOp3BjRR50fN4tXwk4ctnHdKCjoJshcNIBmI7lPo7MovHTlA7ltSPcsIOkR7gjXjw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDe4RWQet7G/cJgtnzzUBUr46dKQ4AeF7w6pw7VNWzq1AIhAKlinuUrrbRuQt0yWJ9tzJOlmCkkBFJtK4Ijp9AI6Bl0"}]},"readme":"","maintainers":[{"name":"dominictarr","email":"dominic.tarr@gmail.com"}],"directories":{}},"0.0.1":{"name":"remote-events","version":"0.0.1","description":"a two ended EventEmitter connected through a Stream","homepage":"http://github.com/dominictarr/remote-events","repository":{"type":"git","url":"git://github.com/dominictarr/remote-events.git"},"dependencies":{"event-stream":"2"},"devDependencies":{"assertions":"2"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"dominictarr.com"},"_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"_id":"remote-events@0.0.1","optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.23","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"09958c12ab75d29f0da02e8f440e699b004b6a55","tarball":"https://registry.npmjs.org/remote-events/-/remote-events-0.0.1.tgz","integrity":"sha512-U1x8VQVaGLQMuADPO/pknW4V+MghMLGLpAWEd2xN8th+GPYkYzp6duROvBk9z6Nyz24j8e2Hes1c5IQtKtB/pA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDLEp57Q4uWtmXU32/Qm52TcaJsOPqy2s1S724hBOYJtAIgefRZBHBesDJKBpc20iueWFT1/962DevXMKKbG1IlTiU="}]},"readme":"","maintainers":[{"name":"dominictarr","email":"dominic.tarr@gmail.com"}],"directories":{}},"1.0.0":{"name":"remote-events","version":"1.0.0","description":"a two ended EventEmitter connected through a Stream","homepage":"http://github.com/dominictarr/remote-events","repository":{"type":"git","url":"git://github.com/dominictarr/remote-events.git"},"dependencies":{"event-stream":"2"},"devDependencies":{"assertions":"2"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"dominictarr.com"},"_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"_id":"remote-events@1.0.0","optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.23","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"15e62cfc08d241e124240289740484c785328274","tarball":"https://registry.npmjs.org/remote-events/-/remote-events-1.0.0.tgz","integrity":"sha512-3rM8VZ/hepL4V8gb/uIcsVcG6di8UAxsKMIbxbsuBTVnLZC9GJFsqMWETLpIbNZZT0F70tpliIKxzsNCbc61gw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGwyTXwbbk0e1KBEMC5VjvZs3nw+sBgElYbRq+/jSpzHAiEA39GMYi3AHWCm5s55MOAS2l3Z8bIk0YioIW9w00/LETs="}]},"readme":"","maintainers":[{"name":"dominictarr","email":"dominic.tarr@gmail.com"}],"directories":{}},"1.0.1":{"name":"remote-events","version":"1.0.1","description":"a two ended EventEmitter connected through a Stream","homepage":"http://github.com/dominictarr/remote-events","repository":{"type":"git","url":"https://github.com/dominictarr/remote-events.git"},"dependencies":{"through":"0"},"devDependencies":{"assertions":"2"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"dominictarr.com"},"_id":"remote-events@1.0.1","dist":{"shasum":"81ecb7197bed81010e41e1b437afc5e39ac08691","tarball":"https://registry.npmjs.org/remote-events/-/remote-events-1.0.1.tgz"},"readme":"","maintainers":[{"name":"dominictarr","email":"dominic.tarr@gmail.com"}],"directories":{}},"1.1.0":{"name":"remote-events","version":"1.1.0","description":"a two ended EventEmitter connected through a Stream","homepage":"http://github.com/dominictarr/remote-events","repository":{"type":"git","url":"https://github.com/dominictarr/remote-events.git"},"dependencies":{"through":"0","event-stream":"~2.1"},"devDependencies":{"assertions":"2"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"dominictarr.com"},"_id":"remote-events@1.1.0","dist":{"shasum":"368cd5f15697a7b8b2f64f4cf83c07e659e0a5f5","tarball":"https://registry.npmjs.org/remote-events/-/remote-events-1.1.0.tgz","integrity":"sha512-zM0YT5TISfL7S2giE3ZCG6FAJHxmEeGnNjk+Wy8NNbHgV89HdtdXQqBeh7rSErE/fMdJbAzq4quYUIKDWxVNIg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAjXlwRrtZeb56/IdHJQYi4ZRN2ciuP4RMpQgQXjBM/bAiEApEC8WCSHDMCKqLr9qhUsCzBZ62ElLfeA4PJYZxVxtOs="}]},"readme":"","maintainers":[{"name":"dominictarr","email":"dominic.tarr@gmail.com"}],"directories":{}},"1.1.1":{"name":"remote-events","version":"1.1.1","description":"a two ended EventEmitter connected through a Stream","homepage":"http://github.com/dominictarr/remote-events","repository":{"type":"git","url":"https://github.com/dominictarr/remote-events.git"},"dependencies":{"through":"0","event-stream":"~2.1"},"devDependencies":{"assertions":"2"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"dominictarr.com"},"readme":"# RemoteEvents\n\nconnect two EventEmitters through a stream!\n\n``` js\nvar RemoteEventEmitter = require('..')\nvar es = require('event-stream')\nvar net = require('net')\n\nvar server = net.createServer(function (con) {\n  var ree = new RemoteEventEmitter()\n  con.pipe(ree.getStream())\n\n  ree.on('ping', function (time) {\n    console.log('PING', time)\n    ree.emit('pong', Date.now())\n  })\n}).listen(2468, function () {\n \n  var con = net.connect(2468)\n  var ree = new RemoteEventEmitter()\n  con.pipe(ree.getStream()).pipe(con)\n\n  var time = Date.now()\n  ree.on('pong', function (_time) {\n    console.log('PONG', _time, _time - time)\n    ree.disconnect()\n    server.close()\n  })\n  ree.emit('ping', time)\n})\n\n```\n\nnow, one may wish to subclass `RemoteEventEmitter` wrap `net` or `http` or [shoe](http://github.com/substack/shoe) and provide a `connect` and `createServer` methods.\n\nthen you will have a very [socket.io](http://socket.io) like interface (but without the silly bundled RPC, etc)\n\nhowever, I recommend instead wrap this with [browser-stream](http://github.com/dominictarr/browser-stream) -- which will allow you to multiplex streams through `RemoteEventEmitter`\n\nwhich will be useful for A) keeping nice `Stream` abstractions when you have a limited budget for connections (like in the browser) and B) seperating interprocess communication abstractions (such as [dnode](http://github.com/substack/dnode) or [crdt](http://github.com/dominictarr/crdt). This has been a problem with libraries using the socket.io api directly.\n\n\n","_id":"remote-events@1.1.1","dist":{"shasum":"31c3360c0243f7900d8c69b8d66d500c435f80fa","tarball":"https://registry.npmjs.org/remote-events/-/remote-events-1.1.1.tgz","integrity":"sha512-wDfCiv9f+2/sqkilCNqkxzsEIauCb4iF8yYxd1Xs4qc7z4e8lt5cUCPEqsXlfTMWewDXX7BlGhtP9a94o4UenA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4JPh0hJZd9SSoYG+VfFq1sVaBS9xZvAVfl/KqnGbd+gIgbM0RYA4zpHoss+dd/I9pyfj3SaWDUc09M4w422Zxezg="}]},"maintainers":[{"name":"dominictarr","email":"dominic.tarr@gmail.com"}],"directories":{}},"1.1.2":{"name":"remote-events","version":"1.1.2","description":"a two ended EventEmitter connected through a Stream","homepage":"http://github.com/dominictarr/remote-events","repository":{"type":"git","url":"https://github.com/dominictarr/remote-events.git"},"dependencies":{"through":"~1.1.2","stream-serializer":"0.0.3"},"devDependencies":{"assertions":"2"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"dominictarr.com"},"readme":"# RemoteEvents\n\nconnect two EventEmitters through a stream!\n\n``` js\nvar RemoteEventEmitter = require('..')\nvar es = require('event-stream')\nvar net = require('net')\n\nvar server = net.createServer(function (con) {\n  var ree = new RemoteEventEmitter()\n  con.pipe(ree.getStream())\n\n  ree.on('ping', function (time) {\n    console.log('PING', time)\n    ree.emit('pong', Date.now())\n  })\n}).listen(2468, function () {\n\n  var con = net.connect(2468)\n  var ree = new RemoteEventEmitter()\n  con.pipe(ree.getStream()).pipe(con)\n\n  var time = Date.now()\n  ree.on('pong', function (_time) {\n    console.log('PONG', _time, _time - time)\n    ree.disconnect()\n    server.close()\n  })\n  ree.emit('ping', time)\n})\n\n```\n\n## options\n\nYou can pass in `opts.wrap` to `RemoteEventEmitter` to set the\nwrapper function that should be used by [`stream-serializer`][1]\n\n  [1]: https://github.com/dominictarr/stream-serializer\n","readmeFilename":"readme.markdown","_id":"remote-events@1.1.2","dist":{"shasum":"ca46e14c99a09fbf7d85c2e3005e7ccb85fa9cb1","tarball":"https://registry.npmjs.org/remote-events/-/remote-events-1.1.2.tgz","integrity":"sha512-la0FyvouMfx4Ga6YcWhZ8ECvxApStnCQWlsSbfwmb37Rz3UF/QzjB/1msENjaK/hbRH9LQAY/MiWGQX5VyKQdQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/+A4VfJ8Ukcud7MLPM6GBNOmsUTZ/G4kbw8uvmlflHwIgW5Rb61dBHbxJbcUH9Tjw/+h+nzLnt0RBmZETdtUARrU="}]},"_npmVersion":"1.1.65","_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"maintainers":[{"name":"dominictarr","email":"dominic.tarr@gmail.com"}],"directories":{}},"1.1.3":{"name":"remote-events","version":"1.1.3","description":"a two ended EventEmitter connected through a Stream","homepage":"http://github.com/dominictarr/remote-events","repository":{"type":"git","url":"https://github.com/dominictarr/remote-events.git"},"dependencies":{"through":"~1.1.2","stream-serializer":"0.0.3"},"devDependencies":{"assertions":"2"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"dominictarr.com"},"readme":"# RemoteEvents\n\nconnect two EventEmitters through a stream!\n\n``` js\nvar RemoteEventEmitter = require('..')\nvar net = require('net')\n\nvar server = net.createServer(function (con) {\n  var ree = new RemoteEventEmitter()\n  con.pipe(ree.getStream()).pipe(con)\n\n  ree.on('ping', function (time) {\n    console.log('PING', time)\n    ree.emit('pong', Date.now())\n  })\n}).listen(2468, function () {\n\n  var con = net.connect(2468)\n  var ree = new RemoteEventEmitter()\n  con.pipe(ree.getStream()).pipe(con)\n\n  var time = Date.now()\n  ree.on('pong', function (_time) {\n    console.log('PONG', _time, _time - time)\n    ree.disconnect()\n    server.close()\n  })\n  ree.emit('ping', time)\n})\n\n```\n\n## options\n\nYou can pass in `opts.wrap` to `RemoteEventEmitter` to set the\nwrapper function that should be used by [`stream-serializer`][1]\n\n  [1]: https://github.com/dominictarr/stream-serializer\n","readmeFilename":"readme.markdown","_id":"remote-events@1.1.3","dist":{"shasum":"faae2917cc95abb42be60290d9611eee186c1fbd","tarball":"https://registry.npmjs.org/remote-events/-/remote-events-1.1.3.tgz","integrity":"sha512-R7dYG5kFHRksj1N+dXs3ixaQb5ebnmI/ihH8BIi5WvjFd1sMwf0zETJBisM0MTy/iOveVFxPp94sF7y5Ti486A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCVlOBLcYmOOAL3+WByq3a3uXxlsl4gO9BQZjU7o9NN0AIgdGmtIntCq9lPDL9r2wU/NLJ0ybgzRV46DZvlPYJO9xM="}]},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"maintainers":[{"name":"dominictarr","email":"dominic.tarr@gmail.com"}],"directories":{}},"1.1.4":{"name":"remote-events","version":"1.1.4","description":"a two ended EventEmitter connected through a Stream","homepage":"http://github.com/dominictarr/remote-events","repository":{"type":"git","url":"https://github.com/dominictarr/remote-events.git"},"dependencies":{"through":"~1.1.2","stream-serializer":"0.0.3"},"devDependencies":{"assertions":"2"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"dominictarr.com"},"readme":"# RemoteEvents\n\nconnect two EventEmitters through a stream!\n\n``` js\nvar RemoteEventEmitter = require('..')\nvar net = require('net')\n\nvar server = net.createServer(function (con) {\n  var ree = new RemoteEventEmitter()\n  con.pipe(ree.getStream()).pipe(con)\n\n  ree.on('ping', function (time) {\n    console.log('PING', time)\n    ree.emit('pong', Date.now())\n  })\n}).listen(2468, function () {\n\n  var con = net.connect(2468)\n  var ree = new RemoteEventEmitter()\n  con.pipe(ree.getStream()).pipe(con)\n\n  var time = Date.now()\n  ree.on('pong', function (_time) {\n    console.log('PONG', _time, _time - time)\n    ree.disconnect()\n    server.close()\n  })\n  ree.emit('ping', time)\n})\n\n```\n\n## options\n\nYou can pass in `opts.wrap` to `RemoteEventEmitter` to set the\nwrapper function that should be used by [`stream-serializer`][1]\n\n  [1]: https://github.com/dominictarr/stream-serializer\n","readmeFilename":"readme.markdown","bugs":{"url":"https://github.com/dominictarr/remote-events/issues"},"_id":"remote-events@1.1.4","dist":{"shasum":"4a263db6d6808922d4b8dd9cd1e8d4cd468b5702","tarball":"https://registry.npmjs.org/remote-events/-/remote-events-1.1.4.tgz","integrity":"sha512-sWw949iM+usuq0+fIaOhzlRAhpCCd2W6J/0BjnlAd3PRFrh3v50wedK3/jl8Lxnq+UqjYaHm4wSHpG3od53y4g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdOY8Vb0oesKrCJamLHafJuzw4stU5uvw/ulbrDky4MwIhAIGoQuw4kgEWmUMF9Ny1/wLLkmPPnyAoPsDECnLiZA3B"}]},"_from":".","_npmVersion":"1.3.6","_npmUser":{"name":"dominictarr","email":"dominic.tarr@gmail.com"},"maintainers":[{"name":"dominictarr","email":"dominic.tarr@gmail.com"}],"directories":{}}},"readme":"","maintainers":[{"email":"nopersonsmodules@gmail.com","name":"nopersonsmodules"}],"time":{"modified":"2022-07-13T15:21:15.556Z","created":"2012-06-23T15:06:02.129Z","0.0.0":"2012-06-23T15:06:10.125Z","0.0.1":"2012-06-23T16:46:06.246Z","1.0.0":"2012-06-23T16:49:30.172Z","1.0.1":"2012-07-06T17:07:54.644Z","1.1.0":"2012-07-13T11:58:22.107Z","1.1.1":"2012-08-10T12:20:20.040Z","1.1.2":"2012-11-22T13:23:05.634Z","1.1.3":"2013-05-04T12:54:40.051Z","1.1.4":"2013-09-16T20:41:24.940Z"},"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"dominictarr.com"},"repository":{"type":"git","url":"https://github.com/dominictarr/remote-events.git"},"users":{"akiva":true}}