{"_id":"mutual","_rev":"437341","name":"mutual","description":"Scala-inspired Actors that use Redis as a message transport","dist-tags":{"latest":"0.4.20"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"time":{"modified":"2021-08-05T06:20:27.000Z","created":"2012-12-20T03:02:56.739Z","0.4.20":"2018-01-03T02:03:08.481Z","0.4.19":"2015-09-16T17:29:54.504Z","1.0.0-alpha-04":"2015-03-25T22:29:55.437Z","1.0.0-alpha-03":"2015-03-25T18:50:42.937Z","1.0.0-alpha-02":"2015-03-25T15:51:28.557Z","0.4.18":"2014-12-09T10:46:16.322Z","0.4.17":"2014-10-08T09:19:27.418Z","0.4.16":"2014-07-24T12:25:18.072Z","0.4.15":"2014-06-25T15:18:50.447Z","0.4.14":"2014-06-25T11:22:20.850Z","0.4.13":"2014-06-11T06:21:28.624Z","0.4.12":"2014-04-18T08:04:47.490Z","0.4.11":"2014-04-08T06:09:34.541Z","0.4.10":"2014-04-02T14:50:06.811Z","0.4.9":"2014-01-23T00:29:12.388Z","0.4.8":"2014-01-20T21:27:03.523Z","0.4.7":"2013-08-21T19:14:45.056Z","0.4.6":"2013-08-21T17:21:56.947Z","0.4.5":"2013-08-02T21:36:31.070Z","0.4.4":"2013-08-02T21:31:22.419Z","0.4.3":"2013-07-04T05:45:24.097Z","0.4.2":"2013-06-08T06:34:12.352Z","0.4.1":"2013-06-05T21:05:18.687Z","0.4.0":"2013-06-02T19:52:36.415Z","0.3.1":"2013-05-23T21:45:42.118Z","0.3.0":"2013-05-23T21:28:25.572Z","0.2.0":"2013-03-25T01:09:23.194Z","0.1.0":"2013-03-25T01:08:41.797Z","0.0.2":"2013-03-03T23:22:35.327Z","0.0.1":"2013-03-03T23:05:12.698Z","0.0.0":"2012-12-20T03:02:56.739Z"},"users":{"justinfreitag":true,"meeh":true},"author":{"name":"Dan Yoder"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"versions":{"0.4.20":{"name":"mutual","version":"0.4.20","description":"Scala-inspired Actors that use Redis as a message transport","main":"lib/index.js","scripts":{"prepublish":"coffee -o lib/ -c src/*.coffee"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","dependencies":{"fairmont":"0.7.x","generic-pool":"~2.1.1","key-forge":"~0.1.3","pirate":"~0.9.7","redis":"0.8.x","typely":"0.0.x","when":"~3.6.2"},"devDependencies":{"testify":"0.2.9","express":"~3.3.5"},"contributors":[],"gitHead":"c3204cfc2c025fc3d17e4988648a4c38f0b967f6","bugs":{"url":"https://github.com/dyoder/mutual/issues"},"homepage":"https://github.com/dyoder/mutual#readme","_id":"mutual@0.4.20","_shasum":"e356fc2903b48e872d573e5f8c94476617116287","_from":".","_npmVersion":"3.9.3","_nodeVersion":"6.2.1","_npmUser":{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"},"dist":{"shasum":"e356fc2903b48e872d573e5f8c94476617116287","size":11040,"noattachment":false,"key":"/mutual/-/mutual-0.4.20.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.20.tgz"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mutual-0.4.20.tgz_1514944988413_0.6426222182344645"},"directories":{},"publish_time":1514944988481,"_cnpm_publish_time":1514944988481,"_hasShrinkwrap":false},"0.4.19":{"name":"mutual","version":"0.4.19","description":"Scala-inspired Actors that use Redis as a message transport","main":"lib/index.js","scripts":{"prepublish":"coffee -o lib/ -c src/*.coffee"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","dependencies":{"fairmont":"0.7.x","generic-pool":"~2.1.1","key-forge":"~0.1.3","pirate":"~0.9.7","redis":"0.8.x","typely":"0.0.x","when":"~3.6.2"},"devDependencies":{"testify":"0.2.9","express":"~3.3.5"},"contributors":[],"gitHead":"1943cf7a1360bf2a45dc3e7f065fbe79091ba537","bugs":{"url":"https://github.com/dyoder/mutual/issues"},"homepage":"https://github.com/dyoder/mutual#readme","_id":"mutual@0.4.19","_shasum":"53e19170f78337a6b0ff650efe039a5fb631f3c6","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.6","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"dist":{"shasum":"53e19170f78337a6b0ff650efe039a5fb631f3c6","size":12759,"noattachment":false,"key":"/mutual/-/mutual-0.4.19.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.19.tgz"},"directories":{},"publish_time":1442424594504,"_cnpm_publish_time":1442424594504,"_hasShrinkwrap":false},"1.0.0-alpha-04":{"name":"mutual","version":"1.0.0-alpha-04","description":"TBD","main":"lib/index.js","scripts":{"prepublish":"coffee --nodejs --harmony --compile -o ./lib ./src","watch":"coffee --nodejs --harmony --compile --watch -o lib/ ./src","test":"coffee --nodejs --harmony test/index.coffee","examples":"coffee --nodejs --harmony examples/index.coffee"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":[],"author":{"name":"Dan Yoder"},"license":"MIT","dependencies":{"evie":"^1.0.0-alpha-02","evie-wildcards":"^1.0.0-alpha-01","fairmont":"^1.0.0-alpha-17","redis":"^0.12.1","when":"^3.7.2"},"devDependencies":{"amen":"^1.0.0-alpha-06","key-forge":"^1.0.0-beta-01"},"gitHead":"04b2a49c332c823a3766febcc9a5d73af81b0d82","bugs":{"url":"https://github.com/dyoder/mutual/issues"},"homepage":"https://github.com/dyoder/mutual","_id":"mutual@1.0.0-alpha-04","_shasum":"9d4f6a7795ebb8b509cf570878b5b6ed00d9d5e2","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"dist":{"shasum":"9d4f6a7795ebb8b509cf570878b5b6ed00d9d5e2","size":7093,"noattachment":false,"key":"/mutual/-/mutual-1.0.0-alpha-04.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-1.0.0-alpha-04.tgz"},"directories":{},"publish_time":1427322595437,"_cnpm_publish_time":1427322595437,"_hasShrinkwrap":false},"1.0.0-alpha-03":{"name":"mutual","version":"1.0.0-alpha-03","description":"TBD","main":"lib/index.js","scripts":{"prepublish":"coffee --nodejs --harmony --compile -o ./lib ./src","watch":"coffee --nodejs --harmony --compile --watch -o lib/ ./src","test":"coffee --nodejs --harmony test/index.coffee","examples":"coffee --nodejs --harmony examples/index.coffee"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":[],"author":{"name":"Dan Yoder"},"license":"MIT","dependencies":{"evie":"^1.0.0-alpha-02","evie-wildcards":"^1.0.0-alpha-01","fairmont":"^1.0.0-alpha-14","redis":"^0.12.1","when":"^3.7.2"},"devDependencies":{"amen":"^1.0.0-alpha-06","key-forge":"^1.0.0-beta-01"},"gitHead":"c762c1eef4d87ccf0f35398c4cae85d5716470d5","bugs":{"url":"https://github.com/dyoder/mutual/issues"},"homepage":"https://github.com/dyoder/mutual","_id":"mutual@1.0.0-alpha-03","_shasum":"046fb29a713ac4ba20d4ee0c6c2025e49d1432cf","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"dist":{"shasum":"046fb29a713ac4ba20d4ee0c6c2025e49d1432cf","size":7086,"noattachment":false,"key":"/mutual/-/mutual-1.0.0-alpha-03.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-1.0.0-alpha-03.tgz"},"directories":{},"publish_time":1427309442937,"_cnpm_publish_time":1427309442937,"_hasShrinkwrap":false},"1.0.0-alpha-02":{"name":"mutual","version":"1.0.0-alpha-02","description":"TBD","main":"lib/index.js","scripts":{"prepublish":"coffee --nodejs --harmony --compile -o ./lib ./src","watch":"coffee --nodejs --harmony --compile --watch -o lib/ ./src","test":"coffee --nodejs --harmony test/index.coffee","examples":"coffee --nodejs --harmony examples/index.coffee"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":[],"author":{"name":"Dan Yoder"},"license":"MIT","dependencies":{"evie":"^1.0.0-alpha-02","evie-wildcards":"^1.0.0-alpha-01","redis":"^0.12.1","when":"^3.7.2"},"devDependencies":{"fairmont":"^1.0.0-alpha-14"},"gitHead":"7cfe16a962dc8ad62af81d7058d6ea6b856800dc","bugs":{"url":"https://github.com/dyoder/mutual/issues"},"homepage":"https://github.com/dyoder/mutual","_id":"mutual@1.0.0-alpha-02","_shasum":"61321c55e67a683a23527cc26800244bd1f298fe","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.12.0","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"dist":{"shasum":"61321c55e67a683a23527cc26800244bd1f298fe","size":7072,"noattachment":false,"key":"/mutual/-/mutual-1.0.0-alpha-02.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-1.0.0-alpha-02.tgz"},"directories":{},"publish_time":1427298688557,"_cnpm_publish_time":1427298688557,"_hasShrinkwrap":false},"0.4.18":{"name":"mutual","version":"0.4.18","description":"Scala-inspired Actors that use Redis as a message transport","main":"lib/index.js","scripts":{"prepublish":"coffee -o lib/ -c src/*.coffee"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","dependencies":{"fairmont":"0.7.x","generic-pool":"~2.1.1","key-forge":"~0.1.3","pirate":"~0.9.7","redis":"0.8.x","typely":"0.0.x","when":"~3.6.2"},"devDependencies":{"testify":"0.2.9","express":"~3.3.5"},"contributors":[],"bugs":{"url":"https://github.com/dyoder/mutual/issues"},"homepage":"https://github.com/dyoder/mutual","_id":"mutual@0.4.18","dist":{"shasum":"3ec79581ed7d5d43e7b35d453157af46c23a4d09","size":10732,"noattachment":false,"key":"/mutual/-/mutual-0.4.18.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.18.tgz"},"_from":".","_npmVersion":"1.3.15","_npmUser":{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1418121976322,"_cnpm_publish_time":1418121976322,"_hasShrinkwrap":false},"0.4.17":{"name":"mutual","version":"0.4.17","description":"Scala-inspired Actors that use Redis as a message transport","main":"lib/index.js","scripts":{"prepublish":"coffee -o lib/ -c src/*.coffee"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","dependencies":{"fairmont":"0.7.x","generic-pool":"~2.1.1","key-forge":"~0.1.3","pirate":"~0.9.7","redis":"0.8.x","typely":"0.0.x"},"devDependencies":{"testify":"0.2.9","express":"~3.3.5"},"contributors":[],"bugs":{"url":"https://github.com/dyoder/mutual/issues"},"homepage":"https://github.com/dyoder/mutual","_id":"mutual@0.4.17","_shasum":"fc56fb8ff3b999a202db8fa6d3c1de655fe1cb0d","_from":".","_npmVersion":"1.4.7","_npmUser":{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"dist":{"shasum":"fc56fb8ff3b999a202db8fa6d3c1de655fe1cb0d","size":10328,"noattachment":false,"key":"/mutual/-/mutual-0.4.17.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.17.tgz"},"directories":{},"publish_time":1412759967418,"_cnpm_publish_time":1412759967418,"_hasShrinkwrap":false},"0.4.16":{"name":"mutual","version":"0.4.16","description":"Scala-inspired Actors that use Redis as a message transport","main":"lib/index.js","scripts":{"prepublish":"coffee -o lib/ -c src/*.coffee"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","dependencies":{"fairmont":"0.7.x","generic-pool":"2.0.2","key-forge":"~0.1.3","pirate":"~0.9.7","redis":"0.8.x","typely":"0.0.x"},"devDependencies":{"testify":"0.2.9","express":"~3.3.5"},"contributors":[],"bugs":{"url":"https://github.com/dyoder/mutual/issues"},"homepage":"https://github.com/dyoder/mutual","_id":"mutual@0.4.16","_shasum":"dad7929eace3b85da82b716c2612745241e2bdf3","_from":".","_npmVersion":"1.4.7","_npmUser":{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"dist":{"shasum":"dad7929eace3b85da82b716c2612745241e2bdf3","size":10343,"noattachment":false,"key":"/mutual/-/mutual-0.4.16.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.16.tgz"},"directories":{},"publish_time":1406204718072,"_cnpm_publish_time":1406204718072,"_hasShrinkwrap":false},"0.4.15":{"name":"mutual","version":"0.4.15","description":"Scala-inspired Actors that use Redis as a message transport","main":"lib/index.js","scripts":{"prepublish":"coffee -o lib/ -c src/*.coffee"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","dependencies":{"fairmont":"0.7.x","generic-pool":"2.0.2","key-forge":"~0.1.3","pirate":"~0.9.7","redis":"0.8.x","typely":"0.0.x"},"devDependencies":{"testify":"0.2.9","express":"~3.3.5"},"contributors":[],"bugs":{"url":"https://github.com/dyoder/mutual/issues"},"homepage":"https://github.com/dyoder/mutual","_id":"mutual@0.4.15","_shasum":"2739d92dc9cca5e30f2dfdca1ac39901d9f29914","_from":".","_npmVersion":"1.4.7","_npmUser":{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"dist":{"shasum":"2739d92dc9cca5e30f2dfdca1ac39901d9f29914","size":10185,"noattachment":false,"key":"/mutual/-/mutual-0.4.15.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.15.tgz"},"directories":{},"publish_time":1403709530447,"_cnpm_publish_time":1403709530447,"_hasShrinkwrap":false},"0.4.14":{"name":"mutual","version":"0.4.14","description":"Scala-inspired Actors that use Redis as a message transport","main":"lib/index.js","scripts":{"prepublish":"coffee -o lib/ -c src/*.coffee"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","dependencies":{"fairmont":"0.7.x","generic-pool":"2.0.2","key-forge":"~0.1.3","pirate":"~0.9.7","redis":"0.8.x","typely":"0.0.x"},"devDependencies":{"testify":"0.2.9","express":"~3.3.5"},"contributors":[],"bugs":{"url":"https://github.com/dyoder/mutual/issues"},"homepage":"https://github.com/dyoder/mutual","_id":"mutual@0.4.14","_shasum":"ffde3dd4a227992fcfb9ad33a8dde49eb6297909","_from":".","_npmVersion":"1.4.7","_npmUser":{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"dist":{"shasum":"ffde3dd4a227992fcfb9ad33a8dde49eb6297909","size":10218,"noattachment":false,"key":"/mutual/-/mutual-0.4.14.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.14.tgz"},"directories":{},"publish_time":1403695340850,"_cnpm_publish_time":1403695340850,"_hasShrinkwrap":false},"0.4.13":{"name":"mutual","version":"0.4.13","description":"Scala-inspired Actors that use Redis as a message transport","main":"lib/index.js","scripts":{"prepublish":"coffee -o lib/ -c src/*.coffee"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","dependencies":{"fairmont":"0.7.x","generic-pool":"2.0.2","key-forge":"~0.1.3","pirate":"~0.9.7","redis":"0.8.x","typely":"0.0.x"},"devDependencies":{"testify":"0.2.9","express":"~3.3.5"},"contributors":[],"bugs":{"url":"https://github.com/dyoder/mutual/issues"},"homepage":"https://github.com/dyoder/mutual","_id":"mutual@0.4.13","_shasum":"d019649ca641b9d64f975a5ebbb334baa5ccf719","_from":".","_npmVersion":"1.4.7","_npmUser":{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"dist":{"shasum":"d019649ca641b9d64f975a5ebbb334baa5ccf719","size":10209,"noattachment":false,"key":"/mutual/-/mutual-0.4.13.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.13.tgz"},"directories":{},"publish_time":1402467688624,"_cnpm_publish_time":1402467688624,"_hasShrinkwrap":false},"0.4.12":{"name":"mutual","version":"0.4.12","description":"Scala-inspired Actors that use Redis as a message transport","main":"lib/index.js","scripts":{"prepublish":"coffee -o lib/ -c src/*.coffee"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","dependencies":{"fairmont":"0.7.x","generic-pool":"2.0.2","key-forge":"~0.1.3","pirate":"~0.9.7","redis":"0.8.x","typely":"0.0.x"},"devDependencies":{"testify":"0.2.9","express":"~3.3.5"},"contributors":[],"bugs":{"url":"https://github.com/dyoder/mutual/issues"},"homepage":"https://github.com/dyoder/mutual","_id":"mutual@0.4.12","dist":{"shasum":"ca19a6596e124e3c406c5ee7427c0b42080fbc46","size":10151,"noattachment":false,"key":"/mutual/-/mutual-0.4.12.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.12.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1397808287490,"_cnpm_publish_time":1397808287490,"_hasShrinkwrap":false},"0.4.11":{"name":"mutual","version":"0.4.11","description":"Scala-inspired Actors that use Redis as a message transport","main":"lib/index.js","scripts":{"prepublish":"coffee -o lib/ -c src/*.coffee"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","dependencies":{"fairmont":"0.7.x","generic-pool":"2.0.2","key-forge":"~0.1.3","pirate":"~0.9.7","redis":"0.8.x","typely":"0.0.x"},"devDependencies":{"testify":"0.2.9","express":"~3.3.5"},"contributors":[],"bugs":{"url":"https://github.com/dyoder/mutual/issues"},"homepage":"https://github.com/dyoder/mutual","_id":"mutual@0.4.11","dist":{"shasum":"9fae1fe88bc008e9775967537bc9ca714b7f5e5b","size":9778,"noattachment":false,"key":"/mutual/-/mutual-0.4.11.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.11.tgz"},"_from":"./","_npmVersion":"1.4.3","_npmUser":{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1396937374541,"_cnpm_publish_time":1396937374541,"_hasShrinkwrap":false},"0.4.10":{"name":"mutual","version":"0.4.10","description":"Scala-inspired Actors that use Redis as a message transport","main":"src/index.coffee","scripts":{"test":"rake test"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","dependencies":{"fairmont":"0.7.x","generic-pool":"2.0.2","redis":"0.8.x","typely":"0.0.x"},"devDependencies":{"testify":"0.2.9","express":"~3.3.5"},"contributors":[],"bugs":{"url":"https://github.com/dyoder/mutual/issues"},"homepage":"https://github.com/dyoder/mutual","_id":"mutual@0.4.10","dist":{"shasum":"2c9b7755ae006041524a5aa2e0921c240fe6f455","size":8971,"noattachment":false,"key":"/mutual/-/mutual-0.4.10.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.10.tgz"},"_from":".","_npmVersion":"1.3.26","_npmUser":{"name":"automatthew","email":"automatthew@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1396450206811,"_cnpm_publish_time":1396450206811,"_hasShrinkwrap":false},"0.4.9":{"name":"mutual","version":"0.4.9","description":"Scala-inspired Actors that use Redis as a message transport","main":"src/index.coffee","scripts":{"test":"rake test"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","dependencies":{"fairmont":"0.7.x","generic-pool":"2.0.2","redis":"0.8.x","typely":"0.0.x"},"devDependencies":{"testify":"0.2.9","express":"~3.3.5"},"contributors":[],"bugs":{"url":"https://github.com/dyoder/mutual/issues"},"_id":"mutual@0.4.9","dist":{"shasum":"ef5e955bbdb8dca1d842f7d2611db10c55479552","size":8761,"noattachment":false,"key":"/mutual/-/mutual-0.4.9.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.9.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"automatthew","email":"automatthew@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1390436952388,"_cnpm_publish_time":1390436952388,"_hasShrinkwrap":false},"0.4.8":{"name":"mutual","version":"0.4.8","description":"Scala-inspired Actors that use Redis as a message transport","main":"src/index.coffee","scripts":{"test":"rake test"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","dependencies":{"fairmont":"0.7.x","generic-pool":"2.0.2","redis":"0.8.x","typely":"0.0.x"},"devDependencies":{"testify":"0.1.x","express":"~3.3.5"},"contributors":[],"bugs":{"url":"https://github.com/dyoder/mutual/issues"},"_id":"mutual@0.4.8","dist":{"shasum":"3975e1977a0e5bc5020cf2b9188a723f7f726f39","size":7900,"noattachment":false,"key":"/mutual/-/mutual-0.4.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.8.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"automatthew","email":"automatthew@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1390253223523,"_cnpm_publish_time":1390253223523,"_hasShrinkwrap":false},"0.4.7":{"name":"mutual","version":"0.4.7","description":"Scala-inspired Actors that use Redis as a message transport","main":"src/index.coffee","scripts":{"test":"rake test"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","readmeFilename":"README.md","dependencies":{"fairmont":"0.7.x","generic-pool":"2.0.2","redis":"0.8.x","typely":"0.0.x"},"devDependencies":{"testify":"0.1.x","express":"~3.3.5"},"contributors":[],"_id":"mutual@0.4.7","dist":{"shasum":"f8e793c4041c2cab4553bb222660345de6a93530","size":7855,"noattachment":false,"key":"/mutual/-/mutual-0.4.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.7.tgz"},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1377112485056,"_cnpm_publish_time":1377112485056,"_hasShrinkwrap":false},"0.4.6":{"name":"mutual","version":"0.4.6","description":"Scala-inspired Actors that use Redis as a message transport","main":"src/index.coffee","scripts":{"test":"rake test"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","readmeFilename":"README.md","dependencies":{"fairmont":"0.7.x","generic-pool":"2.0.2","redis":"0.8.x","typely":"0.0.x"},"devDependencies":{"testify":"0.1.x"},"contributors":[],"_id":"mutual@0.4.6","dist":{"shasum":"8436059d9d1507bbdd1161715881b47c2c61bca5","size":6464,"noattachment":false,"key":"/mutual/-/mutual-0.4.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.6.tgz"},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1377105716947,"_cnpm_publish_time":1377105716947,"_hasShrinkwrap":false},"0.4.5":{"name":"mutual","version":"0.4.5","description":"Scala-inspired Actors that use Redis as a message transport","main":"src/index.coffee","scripts":{"test":"rake test"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","readmeFilename":"README.md","dependencies":{"fairmont":"0.4.x","generic-pool":"2.0.2","redis":"0.8.x","typely":"0.0.x"},"devDependencies":{"testify":"0.1.x"},"contributors":[],"_id":"mutual@0.4.5","dist":{"shasum":"0ed9797ec458cbbfdd816e7147e11cfe6c473bbf","size":6133,"noattachment":false,"key":"/mutual/-/mutual-0.4.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.5.tgz"},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1375479391070,"_cnpm_publish_time":1375479391070,"_hasShrinkwrap":false},"0.4.4":{"name":"mutual","version":"0.4.4","description":"Scala-inspired Actors that use Redis as a message transport","main":"src/index.coffee","scripts":{"test":"rake test"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","readmeFilename":"README.md","dependencies":{"fairmont":"0.3.x","generic-pool":"2.0.2","redis":"0.8.x","typely":"0.0.x"},"devDependencies":{"testify":"0.1.x"},"contributors":[],"_id":"mutual@0.4.4","dist":{"shasum":"608c416ded749520f32884b6202ed1a6d146227b","size":6129,"noattachment":false,"key":"/mutual/-/mutual-0.4.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.4.tgz"},"_from":".","_npmVersion":"1.2.18","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1375479082419,"_cnpm_publish_time":1375479082419,"_hasShrinkwrap":false},"0.4.3":{"name":"mutual","version":"0.4.3","description":"Scala-inspired Actors that use Redis as a message transport","main":"src/index.coffee","scripts":{"test":"rake test"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","readmeFilename":"README.md","dependencies":{"fairmont":"0.3.x","generic-pool":"2.0.2","redis":"0.8.x","typely":"0.0.x"},"devDependencies":{"testify":"0.1.x"},"contributors":[],"_id":"mutual@0.4.3","dist":{"shasum":"a641946c0060a1957239f7bdcd27c6d6b3f60a24","size":6142,"noattachment":false,"key":"/mutual/-/mutual-0.4.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.3.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1372916724097,"_cnpm_publish_time":1372916724097,"_hasShrinkwrap":false},"0.4.2":{"name":"mutual","version":"0.4.2","description":"Scala-inspired Actors that use Redis as a message transport","main":"src/index.coffee","scripts":{"test":"rake test"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","readmeFilename":"README.md","dependencies":{"fairmont":"0.3.x","generic-pool":"2.0.2","redis":"0.8.x","typely":"0.0.x"},"devDependencies":{"testify":"0.1.x"},"contributors":[],"_id":"mutual@0.4.2","dist":{"shasum":"fcc0fe5628d3d4e769a5b6623f9466341c81db9b","size":6085,"noattachment":false,"key":"/mutual/-/mutual-0.4.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.2.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1370673252352,"_cnpm_publish_time":1370673252352,"_hasShrinkwrap":false},"0.4.1":{"name":"mutual","version":"0.4.1","description":"Scala-inspired Actors that use Redis as a message transport","main":"src/index.coffee","scripts":{"test":"rake test"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","readmeFilename":"README.md","dependencies":{"fairmont":"0.3.x","generic-pool":"2.0.2","redis":"0.8.x","typely":"0.0.x"},"devDependencies":{"testify":"0.1.x"},"contributors":[],"_id":"mutual@0.4.1","dist":{"shasum":"d07f859fd2b27b2add945832ef794b42e36f6531","size":6064,"noattachment":false,"key":"/mutual/-/mutual-0.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.1.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1370466318687,"_cnpm_publish_time":1370466318687,"_hasShrinkwrap":false},"0.4.0":{"name":"mutual","version":"0.4.0","description":"Scala-inspired Actors that use Redis as a message transport","main":"src/index.coffee","scripts":{"test":"rake test"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","readmeFilename":"README.md","dependencies":{"fairmont":"0.3.x","generic-pool":"2.0.2","redis":"0.8.x","typely":"0.0.x"},"devDependencies":{"testify":"0.1.x"},"contributors":[],"_id":"mutual@0.4.0","dist":{"shasum":"184bdec8281fa23ecfcce5cfb4768769e4727887","size":6051,"noattachment":false,"key":"/mutual/-/mutual-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.4.0.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1370202756415,"_cnpm_publish_time":1370202756415,"_hasShrinkwrap":false},"0.3.1":{"name":"mutual","version":"0.3.1","description":"Scala-inspired Actors that use Redis as a message transport","main":"src/index.coffee","scripts":{"test":"rake test"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","readmeFilename":"README.md","dependencies":{"testify":"~0.1.0"},"contributors":[],"_id":"mutual@0.3.1","dist":{"shasum":"fc9e1185b2cd06da108daa042ee4e478f85e609b","size":6310,"noattachment":false,"key":"/mutual/-/mutual-0.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.3.1.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1369345542118,"_cnpm_publish_time":1369345542118,"_hasShrinkwrap":false},"0.3.0":{"name":"mutual","version":"0.3.0","description":"Scala-inspired Actors that use Redis as a message transport","main":"src/index.coffee","scripts":{"test":"rake test"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","readmeFilename":"README.md","dependencies":{"testify":"~0.1.0"},"contributors":[],"_id":"mutual@0.3.0","dist":{"shasum":"961e50a34ade1a3a50e76b2e10ba9a3aa54d33d3","size":6308,"noattachment":false,"key":"/mutual/-/mutual-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.3.0.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1369344505572,"_cnpm_publish_time":1369344505572,"_hasShrinkwrap":false},"0.2.0":{"name":"mutual","version":"0.2.0","description":"Scala-inspired Actors that use Redis as a message transport","main":"src/index.coffee","scripts":{"test":"rake test"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","readmeFilename":"README.md","dependencies":{"testify":"~0.1.0"},"contributors":[],"_id":"mutual@0.2.0","dist":{"shasum":"5da2cd409b75cc69a83fa9a7854028a89a7d0feb","size":5567,"noattachment":false,"key":"/mutual/-/mutual-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.2.0.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1364173763194,"_cnpm_publish_time":1364173763194,"_hasShrinkwrap":false},"0.1.0":{"name":"mutual","version":"0.1.0","description":"Scala-inspired Actors that use Redis as a message transport","main":"src/index.coffee","scripts":{"test":"rake test"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","readmeFilename":"README.md","dependencies":{"testify":"~0.1.0"},"contributors":[],"_id":"mutual@0.1.0","dist":{"shasum":"482c2aecc3a9fe86bc90216be83e28543077858f","size":5565,"noattachment":false,"key":"/mutual/-/mutual-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.1.0.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1364173721797,"_cnpm_publish_time":1364173721797,"_hasShrinkwrap":false},"0.0.2":{"name":"mutual","version":"0.0.2","description":"Scala-inspired Actors that use Redis as a message transport","main":"src/index.coffee","scripts":{"test":"rake test"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","readmeFilename":"README.md","dependencies":{"testify":"~0.1.0"},"contributors":[],"_id":"mutual@0.0.2","dist":{"shasum":"ddc46bfa88e13d51a6a77749d61a5688cd8cbf43","size":5601,"noattachment":false,"key":"/mutual/-/mutual-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.0.2.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1362352955327,"_cnpm_publish_time":1362352955327,"_hasShrinkwrap":false},"0.0.1":{"name":"mutual","version":"0.0.1","description":"Scala-inspired Actors that use Redis as a message transport","main":"src/channel.coffee","scripts":{"test":"rake test"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","queue","worker"],"author":{"name":"Dan Yoder"},"license":"MIT","readmeFilename":"README.md","dependencies":{"testify":"~0.1.0"},"contributors":[],"_id":"mutual@0.0.1","dist":{"shasum":"ad83a8e340403e527f22a8dc29ea802fbba9dfb5","size":5515,"noattachment":false,"key":"/mutual/-/mutual-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.0.1.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1362351912698,"_cnpm_publish_time":1362351912698,"_hasShrinkwrap":false},"0.0.0":{"name":"mutual","version":"0.0.0","description":"Scala-inspired Actors that use Redis as a message transport","main":"src/mutual.js","scripts":{"test":"rake test"},"repository":{"type":"git","url":"git://github.com/dyoder/mutual.git"},"keywords":["scala","actor","channel","redis","message","distributed","worker"],"author":{"name":"Dan Yoder"},"license":"BSD","readmeFilename":"README.md","contributors":[],"_id":"mutual@0.0.0","dist":{"shasum":"3270979c91687f932403871ea0ec1236e4d3b94f","size":1150,"noattachment":false,"key":"/mutual/-/mutual-0.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/mutual/download/mutual-0.0.0.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"dyoder","email":"danielyoder@gmail.com"},"maintainers":[{"name":"automatthew","email":"automatthew@gmail.com"},{"name":"dyoder","email":"danielyoder@gmail.com"},{"name":"maheshyellai","email":"mahesh.yellai@gmail.com"}],"directories":{},"publish_time":1355972576739,"_cnpm_publish_time":1355972576739,"_hasShrinkwrap":false}},"readme":"# Mutual\n\nMutual is inspired by Scala's Actor model. Concurrency is managed by setting up Channels between participants. Remote channels are implemented by using Redis as a transport. Event channels provide an `EventEmitter` like interface. Builder methods, in combination with event-bubbling, can be used to build complex chains of asynchronous processing.\n\n    fs = require \"fs\"\n    \n    {EventChannel} = require \"mutual\"\n    events = new EventChannel\n    \n    # all error events will bubble-up here\n    events.on \"error\", (error) -> console.log error\n    \n    # wrap a Node-style callback function\n    read = events.wrap(fs.readFile)\n    \n    # use builder function to create an asynchronous control flow\n    do events.serially (go) ->\n      go -> read(\"foo.txt\", encoding: \"utf8\")\n      go (text) -> console.log text\n      \nRemote channels are just event channels, which means you can swap them out without changing any code. Here's a simple express app that implements a chat interface:\n\n    http = require \"http\"\n    {EventChannel} = require \"mutual\"\n    events = new EventChannel\n\n    # all error events will bubble-up here\n    events.on \"error\", (error) -> console.log error\n\n    {getChannel,makeChannel} = do (channels = {}) ->\n      makeChannel: (name) -> events.source name\n      getChannel: (name) -> channels[name] ?= makeChannel(name)\n\n    express = require \"express\"\n    app = express()\n\n    app.use (request, response, next) -> \n      body = \"\"\n      request.on \"data\", (data) -> body += data\n      request.on \"end\", ->\n        request.body = body\n        next()\n\n    app.get '/:channel', (request, response) ->\n      {channel} = request.params\n      getChannel(channel).once \"message\", (message) ->\n        response.send message\n\n    app.post '/:channel', (request, response) ->\n      response.send 202, \"\"\n      {channel} = request.params\n      message = request.body\n      getChannel(channel).emit \"message\", message\n\n    http.createServer(app).listen(1337)\n    \nIf you run this, you can do a GET to a channel URL (ex: `/foo`) and then POST a message to it.\n\n        curl http://localhost:1337/foo &\n        curl http://localhost:1337/foo -d \"Hello\"\n\nThe original GET will return the message.\n\nOf course, this isn't much different from what we could do using `EventEmitter`, outside of utilizing the event bubbling for `error` events. However, this version also has a big limitation: it only works for one process. If we start to get lots of messages, we'll want to be able to run multiple processes, perhaps even across multiple machines.\n\nWith Mutual, all we need to do, basically, is change `makeChannel` so that it returns a `RemoteChannel`. \n\nFirst, let's `require` the `RedisTransport` and `RemoteChannel`:\n\n    {RemoteChannel,EventChannel,RedisTransport} = require \"../src/index\"\n\nNext, well instantiate the transport:\n\n    transport = new RedisTransport host: \"localhost\", port: 6379\n    \nFinally, we just change our `makeChannel` function:\n\n    makeChannel: (name) -> \n      channel = new RemoteChannel {name,transport}\n      channel.forward(events, name)\n      channel.listen()\n      channel\n\nThe rest of our code remains the same. We've just moved to an implementation that will work across multiple process or machine boundaries by adding and modifying a few lines of code. The bulk of our application is unchanged.\n\nOur final version of our little chat API can be found [in the examples][ex].\n\n[ex]:https://github.com/dyoder/mutual/tree/master/examples\n\n## Installation\n\n    npm install mutual\n    \n## Status\n\nIn development - the interface is relatively stable, but we haven't done a lot of load and performance testing.\n","_attachments":{},"homepage":"https://github.com/dyoder/mutual#readme","bugs":{"url":"https://github.com/dyoder/mutual/issues"},"license":"MIT"}