{"_id":"axon","_rev":"2772221","name":"axon","description":"High-level messaging & socket patterns implemented in pure js","dist-tags":{"latest":"2.0.3"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"time":{"modified":"2022-05-23T09:40:59.000Z","created":"2012-08-03T15:08:11.600Z","2.0.3":"2016-12-15T17:45:00.837Z","2.0.2":"2015-06-22T18:06:14.469Z","2.0.1":"2014-09-09T15:25:39.987Z","2.0.0":"2014-02-25T16:48:17.836Z","1.0.0":"2013-08-30T21:59:17.529Z","0.6.1":"2013-04-13T18:35:53.088Z","0.6.0":"2013-04-13T18:03:49.751Z","0.5.2":"2013-04-09T20:35:19.881Z","0.5.1":"2013-03-01T16:36:20.148Z","0.5.0":"2013-01-01T21:45:21.284Z","0.4.6":"2012-11-16T00:14:36.188Z","0.4.5":"2012-10-30T16:37:39.053Z","0.4.4":"2012-10-29T22:48:53.618Z","0.4.3":"2012-10-28T00:45:00.203Z","0.4.2":"2012-10-19T03:22:21.695Z","0.4.1":"2012-10-16T21:53:38.831Z","0.4.0":"2012-10-16T18:44:13.153Z","0.3.2":"2012-10-08T20:23:21.707Z","0.3.1":"2012-10-08T20:16:12.125Z","0.3.0":"2012-10-05T22:30:02.587Z","0.2.0":"2012-09-27T16:37:01.297Z","0.1.0":"2012-09-24T15:51:54.284Z","0.0.3":"2012-08-03T15:08:11.600Z"},"users":{},"author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"repository":{"type":"git","url":"git+https://github.com/visionmedia/axon.git"},"versions":{"2.0.3":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"2.0.3","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1","escape-regexp":"0.0.1","amp-message":"~0.1.1","amp":"~0.3.1"},"devDependencies":{"better-assert":"~1.0.1","commander":"~2.4.0","humanize-number":"0.0.1","mocha":"~1.21.5","should":"~4.1.0"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"engines":{"node":">= 0.11.8"},"repository":{"type":"git","url":"git+https://github.com/visionmedia/axon.git"},"scripts":{"test":"make test"},"license":"MIT","gitHead":"df2f5bb1637e39f1391dfd8f355db94f9b768e87","bugs":{"url":"https://github.com/visionmedia/axon/issues"},"homepage":"https://github.com/visionmedia/axon#readme","_id":"axon@2.0.3","_shasum":"90bc9a31e30acfdaeff795ada7aba22c51079692","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"jcrugzz","email":"jcrugzz@gmail.com"},"dist":{"shasum":"90bc9a31e30acfdaeff795ada7aba22c51079692","size":12139,"noattachment":false,"key":"/axon/-/axon-2.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-2.0.3.tgz"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/axon-2.0.3.tgz_1481823900151_0.7786658245604485"},"directories":{},"publish_time":1481823900837,"_hasShrinkwrap":false,"_cnpm_publish_time":1481823900837,"_cnpmcore_publish_time":"2021-12-16T15:48:04.252Z"},"2.0.2":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"2.0.2","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1","escape-regexp":"0.0.1","amp-message":"~0.1.1","amp":"~0.3.1"},"devDependencies":{"better-assert":"~1.0.1","commander":"~2.4.0","humanize-number":"0.0.1","mocha":"~1.21.5","should":"~4.1.0"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"engines":{"node":"0.10.x || 0.11.x"},"repository":{"type":"git","url":"https://github.com/visionmedia/axon.git"},"scripts":{"test":"make test"},"license":"MIT","gitHead":"2eb06b064a12461928b479ab9d1a039cbd736589","bugs":{"url":"https://github.com/visionmedia/axon/issues"},"homepage":"https://github.com/visionmedia/axon","_id":"axon@2.0.2","_shasum":"9942b15b296900dcde0e9b3304b7a785e4a7b456","_from":".","_npmVersion":"2.5.1","_nodeVersion":"0.10.38","_npmUser":{"name":"jcrugzz","email":"jcrugzz@gmail.com"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"dist":{"shasum":"9942b15b296900dcde0e9b3304b7a785e4a7b456","size":14448,"noattachment":false,"key":"/axon/-/axon-2.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-2.0.2.tgz"},"directories":{},"publish_time":1434996374469,"_hasShrinkwrap":false,"_cnpm_publish_time":1434996374469,"_cnpmcore_publish_time":"2021-12-16T15:48:04.464Z"},"2.0.1":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"2.0.1","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1","escape-regexp":"0.0.1","amp-message":"~0.1.1","amp":"~0.3.1"},"devDependencies":{"better-assert":"*","should":"*","mocha":"*","commander":"*","humanize-number":"0.0.1"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"repository":{"type":"git","url":"https://github.com/visionmedia/axon.git"},"scripts":{"test":"make test"},"license":"MIT","gitHead":"f4d76ed28fdf380e62d4da874c8339ab7f6d6bfc","bugs":{"url":"https://github.com/visionmedia/axon/issues"},"homepage":"https://github.com/visionmedia/axon","_id":"axon@2.0.1","_shasum":"b32b39e0ec7733b7d9cbfbf3765a02cb6c25b272","_from":".","_npmVersion":"1.4.21","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"dist":{"shasum":"b32b39e0ec7733b7d9cbfbf3765a02cb6c25b272","size":12265,"noattachment":false,"key":"/axon/-/axon-2.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-2.0.1.tgz"},"directories":{},"publish_time":1410276339987,"_hasShrinkwrap":false,"_cnpm_publish_time":1410276339987,"_cnpmcore_publish_time":"2021-12-16T15:48:04.677Z"},"2.0.0":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"2.0.0","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1","escape-regexp":"0.0.1","amp-message":"~0.1.1","amp":"~0.3.1"},"devDependencies":{"better-assert":"*","should":"*","mocha":"*","commander":"*","humanize-number":"0.0.1"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"repository":{"type":"git","url":"https://github.com/visionmedia/axon.git"},"license":"MIT","bugs":{"url":"https://github.com/visionmedia/axon/issues"},"homepage":"https://github.com/visionmedia/axon","_id":"axon@2.0.0","dist":{"shasum":"bff18f2aa28adcb01da3875c8455af8d30b73192","size":12035,"noattachment":false,"key":"/axon/-/axon-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-2.0.0.tgz"},"_from":".","_npmVersion":"1.3.15","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1393346897836,"_hasShrinkwrap":false,"_cnpm_publish_time":1393346897836,"_cnpmcore_publish_time":"2021-12-16T15:48:04.961Z"},"1.0.0":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"1.0.0","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1","escape-regexp":"0.0.1"},"devDependencies":{"better-assert":"*","should":"*","mocha":"*","commander":"*","humanize-number":"0.0.1"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"repository":{"type":"git","url":"https://github.com/visionmedia/axon.git"},"readmeFilename":"Readme.md","bugs":{"url":"https://github.com/visionmedia/axon/issues"},"_id":"axon@1.0.0","dist":{"shasum":"b3237b78ba7492e8e7899e6d5918c5f6ea8bcfb5","size":13521,"noattachment":false,"key":"/axon/-/axon-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-1.0.0.tgz"},"_from":".","_npmVersion":"1.2.30","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1377899957529,"_hasShrinkwrap":false,"_cnpm_publish_time":1377899957529,"_cnpmcore_publish_time":"2021-12-16T15:48:05.206Z"},"0.6.1":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"0.6.1","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1","escape-regexp":"0.0.1"},"devDependencies":{"better-assert":"*","should":"*","mocha":"*","commander":"*","humanize-number":"0.0.1"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"readmeFilename":"Readme.md","_id":"axon@0.6.1","dist":{"shasum":"4b6691e309a25a01f926fca16e302d9dfd2c31ec","size":13272,"noattachment":false,"key":"/axon/-/axon-0.6.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-0.6.1.tgz"},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1365878153088,"_hasShrinkwrap":false,"_cnpm_publish_time":1365878153088,"_cnpmcore_publish_time":"2021-12-16T15:48:05.432Z"},"0.6.0":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"0.6.0","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1","escape-regexp":"0.0.1"},"devDependencies":{"better-assert":"*","should":"*","mocha":"*","commander":"*","humanize-number":"0.0.1"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"readmeFilename":"Readme.md","_id":"axon@0.6.0","dist":{"shasum":"f6fe0d6941a3bd4e7d9f9ce84d22021de974051b","size":13259,"noattachment":false,"key":"/axon/-/axon-0.6.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-0.6.0.tgz"},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1365876229751,"_hasShrinkwrap":false,"_cnpm_publish_time":1365876229751,"_cnpmcore_publish_time":"2021-12-16T15:48:05.747Z"},"0.5.2":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"0.5.2","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1","escape-regexp":"0.0.1"},"devDependencies":{"better-assert":"*","should":"*","mocha":"*","commander":"*","humanize-number":"0.0.1"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"readmeFilename":"Readme.md","_id":"axon@0.5.2","dist":{"shasum":"6255a28861e293d4f40575e589edafb1acf13e8f","size":13157,"noattachment":false,"key":"/axon/-/axon-0.5.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-0.5.2.tgz"},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1365539719881,"_hasShrinkwrap":false,"_cnpm_publish_time":1365539719881,"_cnpmcore_publish_time":"2021-12-16T15:48:05.979Z"},"0.5.1":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"0.5.1","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1","escape-regexp":"0.0.1"},"devDependencies":{"better-assert":"*","should":"*","mocha":"*","commander":"*","humanize-number":"0.0.1"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"readmeFilename":"Readme.md","_id":"axon@0.5.1","dist":{"shasum":"d5b55880c187e3cf314a7a2e4109e42f08c1a46a","size":12930,"noattachment":false,"key":"/axon/-/axon-0.5.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-0.5.1.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1362155780148,"_hasShrinkwrap":false,"_cnpm_publish_time":1362155780148,"_cnpmcore_publish_time":"2021-12-16T15:48:06.187Z"},"0.5.0":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"0.5.0","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1","escape-regexp":"0.0.1"},"devDependencies":{"better-assert":"*","should":"*","mocha":"*","commander":"*","humanize-number":"0.0.1"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"readmeFilename":"Readme.md","_id":"axon@0.5.0","dist":{"shasum":"278a23f7f17969ebd7396e5dc857cfcc950c4621","size":12852,"noattachment":false,"key":"/axon/-/axon-0.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-0.5.0.tgz"},"_npmVersion":"1.1.66","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1357076721284,"_hasShrinkwrap":false,"_cnpm_publish_time":1357076721284,"_cnpmcore_publish_time":"2021-12-16T15:48:06.399Z"},"0.4.6":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"0.4.6","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1","escape-regexp":"0.0.1"},"devDependencies":{"better-assert":"*","should":"*","mocha":"*","commander":"*","humanize-number":"0.0.1"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"readmeFilename":"Readme.md","_id":"axon@0.4.6","dist":{"shasum":"67cd9df471cf12f2ac616dafda4d13eeb2e45d75","size":13710,"noattachment":false,"key":"/axon/-/axon-0.4.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-0.4.6.tgz"},"_npmVersion":"1.1.65","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1353024876188,"_hasShrinkwrap":false,"_cnpm_publish_time":1353024876188,"_cnpmcore_publish_time":"2021-12-16T15:48:06.619Z"},"0.4.5":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"0.4.5","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1","escape-regexp":"0.0.1"},"devDependencies":{"better-assert":"*","should":"*","mocha":"*","commander":"*"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"readmeFilename":"Readme.md","_id":"axon@0.4.5","dist":{"shasum":"2b969e1f903417fe31565c704c7efbf7332daf83","size":13635,"noattachment":false,"key":"/axon/-/axon-0.4.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-0.4.5.tgz"},"_npmVersion":"1.1.64","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1351615059053,"_hasShrinkwrap":false,"_cnpm_publish_time":1351615059053,"_cnpmcore_publish_time":"2021-12-16T15:48:06.819Z"},"0.4.4":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"0.4.4","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1","escape-regexp":"0.0.1"},"devDependencies":{"better-assert":"*","should":"*","mocha":"*","commander":"*"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"readmeFilename":"Readme.md","_id":"axon@0.4.4","dist":{"shasum":"cdeee69b36df3e1e25f0508c3df3cecde87d1ced","size":13623,"noattachment":false,"key":"/axon/-/axon-0.4.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-0.4.4.tgz"},"_npmVersion":"1.1.64","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1351550933618,"_hasShrinkwrap":false,"_cnpm_publish_time":1351550933618,"_cnpmcore_publish_time":"2021-12-16T15:48:07.087Z"},"0.4.3":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"0.4.3","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1","escape-regexp":"0.0.1"},"devDependencies":{"better-assert":"*","should":"*","mocha":"*","commander":"*"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"readmeFilename":"Readme.md","_id":"axon@0.4.3","dist":{"shasum":"eba99848d17d3bf21f501964efe5c314655bf386","size":13587,"noattachment":false,"key":"/axon/-/axon-0.4.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-0.4.3.tgz"},"_npmVersion":"1.1.64","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1351385100203,"_hasShrinkwrap":false,"_cnpm_publish_time":1351385100203,"_cnpmcore_publish_time":"2021-12-16T15:48:07.469Z"},"0.4.2":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"0.4.2","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1","escape-regexp":"0.0.1"},"devDependencies":{"better-assert":"*","should":"*","mocha":"*","commander":"*"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"_id":"axon@0.4.2","dist":{"shasum":"00c572ccb837cfb7c52afda357c78dac8c26cfcc","size":13759,"noattachment":false,"key":"/axon/-/axon-0.4.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-0.4.2.tgz"},"_npmVersion":"1.1.63","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1350616941695,"_hasShrinkwrap":false,"_cnpm_publish_time":1350616941695,"_cnpmcore_publish_time":"2021-12-16T15:48:07.685Z"},"0.4.1":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"0.4.1","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1"},"devDependencies":{"better-assert":"*","should":"*","mocha":"*","commander":"*"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"_id":"axon@0.4.1","dist":{"shasum":"0544aa686f2250814f6c13d6c7f9385509dea52e","size":13633,"noattachment":false,"key":"/axon/-/axon-0.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-0.4.1.tgz"},"_npmVersion":"1.1.61","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1350424418831,"_hasShrinkwrap":false,"_cnpm_publish_time":1350424418831,"_cnpmcore_publish_time":"2021-12-16T15:48:07.894Z"},"0.4.0":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"0.4.0","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1"},"devDependencies":{"better-assert":"*","should":"*","mocha":"*","commander":"*"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"_id":"axon@0.4.0","dist":{"shasum":"d8bc8832d0e19ccb1cd95f6f9d8c51c978cb423a","size":13215,"noattachment":false,"key":"/axon/-/axon-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-0.4.0.tgz"},"_npmVersion":"1.1.61","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1350413053153,"_hasShrinkwrap":false,"_cnpm_publish_time":1350413053153,"_cnpmcore_publish_time":"2021-12-16T15:48:08.107Z"},"0.3.2":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"0.3.2","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1"},"devDependencies":{"should":"*","mocha":"*","commander":"*"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"_id":"axon@0.3.2","dist":{"shasum":"971e67f5866fd3ae62a2d8a76a412b2401d8e57c","size":12382,"noattachment":false,"key":"/axon/-/axon-0.3.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-0.3.2.tgz"},"_npmVersion":"1.1.61","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1349727801707,"_hasShrinkwrap":false,"_cnpm_publish_time":1349727801707,"_cnpmcore_publish_time":"2021-12-16T15:48:08.313Z"},"0.3.1":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"0.3.1","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1"},"devDependencies":{"should":"*","mocha":"*","commander":"*"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"_id":"axon@0.3.1","dist":{"shasum":"cee75e6f6f4752e19ffd3ebdfdca5db958b26049","size":12362,"noattachment":false,"key":"/axon/-/axon-0.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-0.3.1.tgz"},"_npmVersion":"1.1.61","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1349727372125,"_hasShrinkwrap":false,"_cnpm_publish_time":1349727372125,"_cnpmcore_publish_time":"2021-12-16T15:48:08.515Z"},"0.3.0":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"0.3.0","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1"},"devDependencies":{"should":"*","mocha":"*","commander":"*"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"_id":"axon@0.3.0","dist":{"shasum":"4dd041bb6958479528622a2ad49683c31b76b1c3","size":12315,"noattachment":false,"key":"/axon/-/axon-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-0.3.0.tgz"},"_npmVersion":"1.1.61","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1349476202587,"_hasShrinkwrap":false,"_cnpm_publish_time":1349476202587,"_cnpmcore_publish_time":"2021-12-16T15:48:08.712Z"},"0.2.0":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"0.2.0","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1"},"devDependencies":{"should":"*","mocha":"*","commander":"*"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"_id":"axon@0.2.0","dist":{"shasum":"d536ee24fe2413724bc84f8e8e817463e8dff7eb","size":12172,"noattachment":false,"key":"/axon/-/axon-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-0.2.0.tgz"},"_npmVersion":"1.1.61","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1348763821297,"_hasShrinkwrap":false,"_cnpm_publish_time":1348763821297,"_cnpmcore_publish_time":"2021-12-16T15:48:08.922Z"},"0.1.0":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"0.1.0","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*","configurable":"0.0.1"},"devDependencies":{"should":"*","mocha":"*","commander":"*"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"_id":"axon@0.1.0","dist":{"shasum":"7a2bbaba9f375429450448c10b990e2a64b141f3","size":12524,"noattachment":false,"key":"/axon/-/axon-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-0.1.0.tgz"},"_npmVersion":"1.1.61","_npmUser":{"name":"tjholowaychuk","email":"tj@vision-media.ca"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1348501914284,"_hasShrinkwrap":false,"_cnpm_publish_time":1348501914284,"_cnpmcore_publish_time":"2021-12-16T15:48:09.124Z"},"0.0.3":{"name":"axon","description":"High-level messaging & socket patterns implemented in pure js","version":"0.0.3","author":{"name":"TJ Holowaychuk","email":"tj@vision-media.ca"},"dependencies":{"debug":"*"},"devDependencies":{"should":"*","mocha":"*"},"keywords":["zmq","zeromq","pubsub","socket","emitter","ipc","rpc"],"_id":"axon@0.0.3","dist":{"shasum":"83d0a77e7dc16293ade6d15e1ed38f01eef8f988","size":6215,"noattachment":false,"key":"/axon/-/axon-0.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/axon/download/axon-0.0.3.tgz"},"maintainers":[{"name":"gjohnson","email":""},{"name":"jcrugzz","email":"jcrugzz@gmail.com"},{"name":"tjholowaychuk","email":"tj@vision-media.ca"}],"directories":{},"publish_time":1344006491600,"_hasShrinkwrap":false,"_cnpm_publish_time":1344006491600,"_cnpmcore_publish_time":"2021-12-16T15:48:09.345Z"}},"readme":"# Axon\n\n  Axon is a message-oriented socket library for node.js heavily inspired by zeromq. For a light-weight\n  UDP alternative you may be interested in [punt](https://github.com/tj/punt).\n\n[![Build Status](https://travis-ci.org/tj/axon.png)](https://travis-ci.org/tj/axon)\n\n## Installation\n\n    $ npm install axon\n\n## Features\n\n  - message oriented\n  - automated reconnection\n  - light-weight wire protocol\n  - mixed-type arguments (strings, objects, buffers, etc)\n  - unix domain socket support\n  - fast (~800 mb/s ~500,000 messages/s)\n\n## Events\n\n  - `close` when server or connection is closed\n  - `error` (err) when an un-handled socket error occurs\n  - `ignored error` (err) when an axon-handled socket error occurs, but is ignored\n  - `socket error` (err) emitted regardless of handling, for logging purposes\n  - `reconnect attempt` when a reconnection attempt is made\n  - `connect` when connected to the peer, or a peer connection is accepted\n  - `disconnect` when an accepted peer disconnects\n  - `bind` when the server is bound\n  - `drop` (msg) when a message is dropped due to the HWM\n  - `flush` (msgs) queued when messages are flushed on connection\n\n## Patterns\n\n  - push / pull\n  - pub / sub\n  - req / rep\n  - pub-emitter / sub-emitter\n\n## Mixed argument types\n\n  Backed by [node-amp-message](https://github.com/tj/node-amp-message)\n  you may pass strings, objects, and buffers as arguments.\n\n```js\npush.send('image', { w: 100, h: 200 }, imageBuffer);\npull.on('message', function(type, size, img){});\n```\n\n## Push / Pull\n\n`PushSocket`s distribute messages round-robin:\n\n```js\nvar axon = require('axon');\nvar sock = axon.socket('push');\n\nsock.bind(3000);\nconsole.log('push server started');\n\nsetInterval(function(){\n  sock.send('hello');\n}, 150);\n```\n\nReceiver of `PushSocket` messages:\n\n```js\nvar axon = require('axon');\nvar sock = axon.socket('pull');\n\nsock.connect(3000);\n\nsock.on('message', function(msg){\n  console.log(msg.toString());\n});\n```\n\n\nBoth `PushSocket`s and `PullSocket`s may `.bind()` or `.connect()`. In the\nfollowing configuration the push socket is bound and pull \"workers\" connect\nto it to receive work:\n\n![push bind](http://f.cl.ly/items/473u3m1a0k1i0J0I3s04/ss-push.png)\n\nThis configuration shows the inverse, where workers connect to a \"sink\"\nto push results:\n\n![pull bind](http://f.cl.ly/items/3Y0j2v153Q0l1r373i0H/ss-pull.png)\n\n## Pub / Sub\n\n`PubSocket`s send messages to all subscribers without queueing. This is an\nimportant difference when compared to a `PushSocket`, where the delivery of\nmessages will be queued during disconnects and sent again upon the next connection.\n\n```js\nvar axon = require('axon');\nvar sock = axon.socket('pub');\n\nsock.bind(3000);\nconsole.log('pub server started');\n\nsetInterval(function(){\n  sock.send('hello');\n}, 500);\n```\n\n`SubSocket` simply receives any messages from a `PubSocket`:\n\n```js\nvar axon = require('axon');\nvar sock = axon.socket('sub');\n\nsock.connect(3000);\n\nsock.on('message', function(msg){\n  console.log(msg.toString());\n});\n```\n\n `SubSocket`s may optionally `.subscribe()` to one or more \"topics\" (the first multipart value),\n using string patterns or regular expressions:\n\n```js\nvar axon = require('axon');\nvar sock = axon.socket('sub');\n\nsock.connect(3000);\nsock.subscribe('user:login');\nsock.subscribe('upload:*:progress');\n\nsock.on('message', function(topic, msg){\n\n});\n```\n\n## Req / Rep\n\n`ReqSocket` is similar to a `PushSocket` in that it round-robins messages\nto connected `RepSocket`s, however it differs in that this communication is\nbi-directional, every `req.send()` _must_ provide a callback which is invoked\nwhen the `RepSocket` replies.\n\n```js\nvar axon = require('axon');\nvar sock = axon.socket('req');\n\nsock.bind(3000);\n\nsock.send(img, function(res){\n\n});\n```\n\n`RepSocket`s receive a `reply` callback that is used to respond to the request,\nyou may have several of these nodes.\n\n```js\nvar axon = require('axon');\nvar sock = axon.socket('rep');\n\nsock.connect(3000);\n\nsock.on('message', function(img, reply){\n  // resize the image\n  reply(img);\n});\n```\n\n Like other sockets you may provide multiple arguments or an array of arguments,\n followed by the callbacks. For example here we provide a task name of \"resize\"\n to facilitate multiple tasks over a single socket:\n\n```js\nvar axon = require('axon');\nvar sock = axon.socket('req');\n\nsock.bind(3000);\n\nsock.send('resize', img, function(res){\n\n});\n```\n\n Respond to the \"resize\" task:\n\n```js\nvar axon = require('axon');\nvar sock = axon.socket('rep');\n\nsock.connect(3000);\n\nsock.on('message', function(task, img, reply){\n  switch (task) {\n    case 'resize':\n      // resize the image\n      reply(img);\n      break;\n  }\n});\n```\n\n## PubEmitter / SubEmitter\n\n  `PubEmitter` and `SubEmitter` are higher-level `Pub` / `Sub` sockets, using the \"json\" codec to behave much like node's `EventEmitter`. When a `SubEmitter`'s `.on()` method is invoked, the event name is `.subscribe()`d for you. Each wildcard (`*`) or regexp capture group is passed to the callback along with regular message arguments.\n\napp.js:\n\n```js\nvar axon = require('axon');\nvar sock = axon.socket('pub-emitter');\n\nsock.connect(3000);\n\nsetInterval(function(){\n  sock.emit('login', { name: 'tobi' });\n}, 500);\n```\n\nlogger.js:\n\n```js\nvar axon = require('axon');\nvar sock = axon.socket('sub-emitter');\n\nsock.bind(3000);\n\nsock.on('user:login', function(user){\n  console.log('%s signed in', user.name);\n});\n\nsock.on('user:*', function(action, user){\n  console.log('%s %s', user.name, action);\n});\n\nsock.on('*', function(event){\n  console.log(arguments);\n});\n```\n\n## Socket Options\n\nEvery socket has associated options that can be configured via `get/set`.\n\n  - `identity` - the \"name\" of the socket that uniqued identifies it.\n  - `retry timeout` - connection retry timeout in milliseconds [100]\n  - `retry max timeout` - the cap for retry timeout length in milliseconds [5000]\n  - `hwm` - the high water mark threshold for queues [Infinity]\n\n## Binding / Connecting\n\nIn addition to passing a portno, binding to INADDR_ANY by default, you\nmay also specify the hostname via `.bind(port, host)`, another alternative\nis to specify the url much like zmq via `tcp://<hostname>:<portno>`, thus\nthe following are equivalent:\n\n```\nsock.bind(3000)\nsock.bind(3000, '0.0.0.0')\nsock.bind('tcp://0.0.0.0:3000')\n\nsock.connect(3000)\nsock.connect(3000, '0.0.0.0')\nsock.connect('tcp://0.0.0.0:3000')\n```\n\n  You may also use unix domain sockets:\n\n```\nsock.bind('unix:///some/path')\nsock.connect('unix:///some/path')\n```\n\n## Protocol\n\n  Axon 2.x uses the extremely simple [AMP](https://github.com/tj/node-amp) protocol to send messages on the wire. Codecs are no longer required as they were in Axon 1.x.\n\n## Performance\n\nPreliminary benchmarks on my Macbook Pro based on 10 messages\nper tick as a realistic production application would likely have\neven less than this. \"better\" numbers may be acheived with batching\nand a larger messages/tick count however this is not realistic.\n\n  64 byte messages:\n\n```\n\n      min: 47,169 ops/s\n     mean: 465,127 ops/s\n   median: 500,000 ops/s\n    total: 2,325,636 ops in 5s\n  through: 28.39 mb/s\n\n```\n\n  1k messages:\n\n```\n\n      min: 48,076 ops/s\n     mean: 120,253 ops/s\n   median: 121,951 ops/s\n    total: 601,386 ops in 5.001s\n  through: 117.43 mb/s\n\n```\n\n  8k messages:\n\n```\n\n      min: 36,496 ops/s\n     mean: 53,194 ops/s\n   median: 50,505 ops/s\n    total: 266,506 ops in 5.01s\n  through: 405.84 mb/s\n\n````\n\n  32k messages:\n\n```\n\n      min: 12,077 ops/s\n     mean: 14,792 ops/s\n   median: 16,233 ops/s\n    total: 74,186 ops in 5.015s\n  through: 462.28 mb/s\n\n```\n\n## What's it good for?\n\n  Axon are not meant to combat zeromq nor provide feature parity,\n  but provide a nice solution when you don't need the insane\n  nanosecond latency or language interoperability that zeromq provides\n  as axon do not rely on any third-party compiled libraries.\n\n## Running tests\n\n```\n$ npm install\n$ make test\n```\n\n## Authors\n\n  - [tj](http://github.com/tj)\n  - [gjohnson](https://github.com/gjohnson)\n\n## Links\n\n  - [Screencast](https://vimeo.com/45818408)\n  - [Axon RPC](https://github.com/tj/axon-rpc)\n\n## License\n\n  MIT\n","_attachments":{},"homepage":"https://github.com/visionmedia/axon#readme","bugs":{"url":"https://github.com/visionmedia/axon/issues"},"license":"MIT"}