{"_id":"@ably/zeromq","_rev":"15-b73bb9dd0ee0876bec2d4fc41232b8e6","name":"@ably/zeromq","dist-tags":{"latest":"6.0.0-beta.ably.3"},"versions":{"6.0.0-beta.ably.0":{"name":"@ably/zeromq","version":"6.0.0-beta.ably.0","keywords":["zeromq","zmq","0mq","ømq","libzmq","zmtp","message","messaging","queue","async","sockets","native","binding","addon","napi"],"author":{"name":"Rolf Timmermans","email":"rolf@zxcv.nl"},"license":"MIT","_id":"@ably/zeromq@6.0.0-beta.ably.0","maintainers":[{"name":"mschristensen","email":"mike@christensen.codes"},{"name":"ably-realtime","email":"account.owners@ably.com"},{"name":"simonw_ably","email":"simon.woolf@ably.com"},{"name":"owenpearson","email":"owen.pearson@ably.com"},{"name":"mattesch","email":"matt@mattesch.info"}],"homepage":"http://zeromq.github.io/zeromq.js/","bugs":{"url":"https://github.com/ably-forks/zeromq.js/issues"},"dist":{"shasum":"79c5535b6f04933b1201a98f98bdd3f9c0046a40","tarball":"https://registry.npmjs.org/@ably/zeromq/-/zeromq-6.0.0-beta.ably.0.tgz","fileCount":85,"integrity":"sha512-+DKe/oVN+HCDnqCgrUCQVins6LjpdYZ7uGf0xw2CWwqbzYxCxn7HcAXY2TPMgO5TFzfcYLs48+SErbi+YmseYw==","signatures":[{"sig":"MEUCIQDmsKcbC5tuQVmX9ubvEVFuxUtY6Wwf6BMtZWfo5jqDPAIgJ6EbmFPdwDzIMCV4plrH4ycecZ8rpMASt+g/PJQg/c0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1906986},"main":"lib/index.js","pnpm":{"overrides":{"typescript":"~4.9.3"}},"types":"lib/index.d.ts","engines":{"node":">= 10.2"},"gitHead":"23d19df28b9b9e6843d5bd61ed487dd5a8a03c5c","gypfile":true,"scripts":{"lint":"run-p lint.eslint lint.clang-format","test":"run-s build && mocha --exit","bench":"node --expose-gc test/bench","build":"run-s build.js build.native","clean":"shx rm -rf ./build ./lib/ ./prebuilds ./script/*.js ./script/*.js.map ./script/*.d.ts ./script/*.tsbuildinfo","install":"(shx test -f ./script/build.js || run-s build.js) && cross-env npm_config_build_from_source=true node-gyp-build","build.js":"run-p build.script build.library","prebuild":"run-s build.js && node ./script/prebuild.js","build.doc":"typedoc --options ./typedoc.json && minify-all -s docs-raw -d docs --jsCompressor terser","lint-test":"run-s lint-test.eslint","clean.temp":"shx rm -rf ./tmp && shx mkdir -p ./tmp && shx touch ./tmp/.gitkeep","deploy.doc":"run-s build.doc && gh-pages --dist \"./docs\"","build.debug":"run-s build.js build.native.debug","lint.eslint":"pnpm run lint-test.eslint --fix","build.native":"node-gyp configure --release && node-gyp build --release","build.script":"tsc -p ./script/tsconfig.json","build.library":"tsc -p ./src/tsconfig.json && run-s build.library.compat","prepublishOnly":"pnpm run build.js","lint-test.eslint":"eslint **/*.{ts,tsx,js,jsx,cjs,mjs,json,yaml} --no-error-on-unmatched-pattern --cache --cache-location ./.cache/eslint/","lint.clang-format":"clang-format -i -style=file ./src/*.cc ./src/*.h ./src/util/*.h","build.native.debug":"cross-env CMAKE_BUILD_TYPE=Debug node-gyp configure --debug && cross-env CMAKE_BUILD_TYPE=Debug node-gyp build --debug","test.electron.main":"run-s build && electron-mocha","test.skip_gc_tests":"run-s build.debug && cross-env SKIP_GC_TESTS=true mocha --exit","build.library.compat":"shx rm -rf ./lib/ts3.7 && downlevel-dts ./lib ./lib/ts3.7 --to=3.7","test.electron.renderer":"run-s build && electron-mocha --renderer"},"_npmUser":{"name":"simonw_ably","email":"simon.woolf@ably.com"},"repository":{"url":"git+https://github.com/ably-forks/zeromq.js.git","type":"git"},"_npmVersion":"9.7.2","description":"Next-generation ZeroMQ bindings for Node.js (ably fork)","directories":{},"_nodeVersion":"16.14.2","dependencies":{"shx":"^0.3.4","shelljs":"^0.8.5","cross-env":"^7.0.3","node-addon-api":"^6.0.0","@aminya/node-gyp-build":"4.5.0-aminya.4"},"typesVersions":{">=3.7":{"lib/*":["lib/ts3.7/*"]}},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.7","mocha":"^10.1.0","rocha":"^2.5.10","which":"^3.0.0","semver":"^7.3.8","deasync":"^0.1.28","ts-node":"~10.9.1","typedoc":"^0.23.21","fs-extra":"^10.1.0","gh-pages":"^4.0.0","node-gyp":"^9.3.0","prettier":"^2.8.0","benchmark":"^2.1.4","weak-napi":"^2.0.2","typescript":"~4.9.3","@types/chai":"^4.3.4","@types/node":"^18.11.9","prebuildify":"^5.0.1","@types/mocha":"^10.0.0","@types/which":"^2.0.1","npm-run-all2":"^6.0.4","@types/semver":"^7.3.13","downlevel-dts":"^0.11.0","@types/shelljs":"^0.8.11","electron-mocha":"^11.0.2","minify-all-cli":"^1.0.13","@types/fs-extra":"^9.0.13","@types/weak-napi":"^2.0.1","eslint-config-atomic":"^1.18.1","eslint-plugin-prettier":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/zeromq_6.0.0-beta.ably.0_1693427433288_0.03279141302342259","host":"s3://npm-registry-packages"}},"6.0.0-beta.ably.1":{"name":"@ably/zeromq","version":"6.0.0-beta.ably.1","keywords":["zeromq","zmq","0mq","ømq","libzmq","zmtp","message","messaging","queue","async","sockets","native","binding","addon","napi"],"author":{"name":"Rolf Timmermans","email":"rolf@zxcv.nl"},"license":"MIT","_id":"@ably/zeromq@6.0.0-beta.ably.1","maintainers":[{"name":"mschristensen","email":"mike@christensen.codes"},{"name":"ably-realtime","email":"account.owners@ably.com"},{"name":"simonw_ably","email":"simon.woolf@ably.com"},{"name":"owenpearson","email":"owen.pearson@ably.com"},{"name":"mattesch","email":"matt@mattesch.info"}],"homepage":"http://zeromq.github.io/zeromq.js/","bugs":{"url":"https://github.com/ably-forks/zeromq.js/issues"},"dist":{"shasum":"2f85a238a14c4a803547df7742737e1f1e48a8a7","tarball":"https://registry.npmjs.org/@ably/zeromq/-/zeromq-6.0.0-beta.ably.1.tgz","fileCount":85,"integrity":"sha512-pPJVBZZUUQp9jvnuyvBYtCgyvzqnc9gZ7KwicBtTa22VmrMqQyJEKYj3jdQByXlP4vS8ofe+5TbSJWEFFCfdBg==","signatures":[{"sig":"MEYCIQCZymeirYTloob0Oe73Xwzi4Uirs/bcsjFEFa/qWTl+hwIhAKrVgxCFTbp4GRZc6zEUxEYBY570WqVtZ0zUfwNlbHaf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1993866},"main":"lib/index.js","pnpm":{"overrides":{"typescript":"~4.9.3"}},"types":"lib/index.d.ts","engines":{"node":">= 10.2"},"gitHead":"1b76da3666b6a96484161c55b63a544898d83f28","gypfile":true,"scripts":{"lint":"run-p lint.eslint lint.clang-format","test":"run-s build && mocha --exit","bench":"node --expose-gc test/bench","build":"run-s build.js build.native","clean":"shx rm -rf ./build ./lib/ ./prebuilds ./script/*.js ./script/*.js.map ./script/*.d.ts ./script/*.tsbuildinfo","install":"(shx test -f ./script/build.js || run-s build.js) && cross-env npm_config_build_from_source=true node-gyp-build","build.js":"run-p build.script build.library","prebuild":"run-s build.js && node ./script/prebuild.js","build.doc":"typedoc --options ./typedoc.json && minify-all -s docs-raw -d docs --jsCompressor terser","lint-test":"run-s lint-test.eslint","clean.temp":"shx rm -rf ./tmp && shx mkdir -p ./tmp && shx touch ./tmp/.gitkeep","deploy.doc":"run-s build.doc && gh-pages --dist \"./docs\"","build.debug":"run-s build.js build.native.debug","lint.eslint":"pnpm run lint-test.eslint --fix","build.native":"node-gyp configure --release && node-gyp build --release","build.script":"tsc -p ./script/tsconfig.json","build.library":"tsc -p ./src/tsconfig.json && run-s build.library.compat","prepublishOnly":"pnpm run build.js","lint-test.eslint":"eslint **/*.{ts,tsx,js,jsx,cjs,mjs,json,yaml} --no-error-on-unmatched-pattern --cache --cache-location ./.cache/eslint/","lint.clang-format":"clang-format -i -style=file ./src/*.cc ./src/*.h ./src/util/*.h","build.native.debug":"cross-env CMAKE_BUILD_TYPE=Debug node-gyp configure --debug && cross-env CMAKE_BUILD_TYPE=Debug node-gyp build --debug","test.electron.main":"run-s build && electron-mocha","test.skip_gc_tests":"run-s build.debug && cross-env SKIP_GC_TESTS=true mocha --exit","build.library.compat":"shx rm -rf ./lib/ts3.7 && downlevel-dts ./lib ./lib/ts3.7 --to=3.7","test.electron.renderer":"run-s build && electron-mocha --renderer"},"_npmUser":{"name":"simonw_ably","email":"simon.woolf@ably.com"},"repository":{"url":"git+https://github.com/ably-forks/zeromq.js.git","type":"git"},"_npmVersion":"9.7.2","description":"Next-generation ZeroMQ bindings for Node.js (ably fork)","directories":{},"_nodeVersion":"16.14.2","dependencies":{"shx":"^0.3.4","shelljs":"^0.8.5","cross-env":"^7.0.3","node-addon-api":"^6.0.0","@aminya/node-gyp-build":"4.5.0-aminya.4"},"typesVersions":{">=3.7":{"lib/*":["lib/ts3.7/*"]}},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.7","mocha":"^10.1.0","rocha":"^2.5.10","which":"^3.0.0","semver":"^7.3.8","deasync":"^0.1.28","ts-node":"~10.9.1","typedoc":"^0.23.21","fs-extra":"^10.1.0","gh-pages":"^4.0.0","node-gyp":"^9.3.0","prettier":"^2.8.0","benchmark":"^2.1.4","weak-napi":"^2.0.2","typescript":"~4.9.3","@types/chai":"^4.3.4","@types/node":"^18.11.9","prebuildify":"^5.0.1","@types/mocha":"^10.0.0","@types/which":"^2.0.1","npm-run-all2":"^6.0.4","@types/semver":"^7.3.13","downlevel-dts":"^0.11.0","@types/shelljs":"^0.8.11","electron-mocha":"^11.0.2","minify-all-cli":"^1.0.13","@types/fs-extra":"^9.0.13","@types/weak-napi":"^2.0.1","eslint-config-atomic":"^1.18.1","eslint-plugin-prettier":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/zeromq_6.0.0-beta.ably.1_1693427825481_0.9804196168640325","host":"s3://npm-registry-packages"}},"6.0.0-beta.ably.2":{"name":"@ably/zeromq","version":"6.0.0-beta.ably.2","keywords":["zeromq","zmq","0mq","ømq","libzmq","zmtp","message","messaging","queue","async","sockets","native","binding","addon","napi"],"author":{"name":"Rolf Timmermans","email":"rolf@zxcv.nl"},"license":"MIT","_id":"@ably/zeromq@6.0.0-beta.ably.2","maintainers":[{"name":"mschristensen","email":"mike@christensen.codes"},{"name":"ably-realtime","email":"account.owners@ably.com"},{"name":"simonw_ably","email":"simon.woolf@ably.com"},{"name":"owenpearson","email":"owen.pearson@ably.com"},{"name":"mattesch","email":"matt@mattesch.info"}],"homepage":"http://zeromq.github.io/zeromq.js/","bugs":{"url":"https://github.com/ably-forks/zeromq.js/issues"},"dist":{"shasum":"78ac6cc93a4b76b53b7e31fa04ba77c4bb67c6ff","tarball":"https://registry.npmjs.org/@ably/zeromq/-/zeromq-6.0.0-beta.ably.2.tgz","fileCount":85,"integrity":"sha512-T2jQUxEACeYqnwLxVqSXm8sjf4v5bXL+y+WvNnGDK5ggCqu+eCsjhYDhQsY2Vc6nPHKmW4U3SgnycZk3a+wYpg==","signatures":[{"sig":"MEUCIQDl7KNpEZana/pON9oc09UAPXkcaCeF9gWGEl0jA/pt0wIgP6ZVloU8YZIPCopCBKfp9TH7pyK6Z8P3Irzjg5IJRsQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1886308},"main":"lib/index.js","pnpm":{"overrides":{"typescript":"~4.9.3"}},"types":"lib/index.d.ts","engines":{"node":">= 10.2"},"gitHead":"ae5e3105724f4121ee62501314066e1c932cfc8f","gypfile":true,"scripts":{"lint":"run-p lint.eslint lint.clang-format","test":"run-s build && mocha --exit","bench":"node --expose-gc test/bench","build":"run-s build.js build.native","clean":"shx rm -rf ./build ./lib/ ./prebuilds ./script/*.js ./script/*.js.map ./script/*.d.ts ./script/*.tsbuildinfo","install":"(shx test -f ./script/build.js || run-s build.js) && cross-env npm_config_build_from_source=true node-gyp-build","build.js":"run-p build.script build.library","prebuild":"run-s build.js && node ./script/prebuild.js","build.doc":"typedoc --options ./typedoc.json && minify-all -s docs-raw -d docs --jsCompressor terser","lint-test":"run-s lint-test.eslint","clean.temp":"shx rm -rf ./tmp && shx mkdir -p ./tmp && shx touch ./tmp/.gitkeep","deploy.doc":"run-s build.doc && gh-pages --dist \"./docs\"","build.debug":"run-s build.js build.native.debug","lint.eslint":"pnpm run lint-test.eslint --fix","build.native":"node-gyp configure --release && node-gyp build --release","build.script":"tsc -p ./script/tsconfig.json","build.library":"tsc -p ./src/tsconfig.json && run-s build.library.compat","prepublishOnly":"pnpm run build.js","lint-test.eslint":"eslint **/*.{ts,tsx,js,jsx,cjs,mjs,json,yaml} --no-error-on-unmatched-pattern --cache --cache-location ./.cache/eslint/","lint.clang-format":"clang-format -i -style=file ./src/*.cc ./src/*.h ./src/util/*.h","build.native.debug":"cross-env CMAKE_BUILD_TYPE=Debug node-gyp configure --debug && cross-env CMAKE_BUILD_TYPE=Debug node-gyp build --debug","test.electron.main":"run-s build && electron-mocha","test.skip_gc_tests":"run-s build.debug && cross-env SKIP_GC_TESTS=true mocha --exit","build.library.compat":"shx rm -rf ./lib/ts3.7 && downlevel-dts ./lib ./lib/ts3.7 --to=3.7","test.electron.renderer":"run-s build && electron-mocha --renderer"},"_npmUser":{"name":"simonw_ably","email":"simon.woolf@ably.com"},"repository":{"url":"git+https://github.com/ably-forks/zeromq.js.git","type":"git"},"_npmVersion":"9.7.2","description":"Next-generation ZeroMQ bindings for Node.js (ably fork)","directories":{},"_nodeVersion":"16.14.2","dependencies":{"shx":"^0.3.4","shelljs":"^0.8.5","cross-env":"^7.0.3","node-addon-api":"^6.0.0","@aminya/node-gyp-build":"4.5.0-aminya.4"},"typesVersions":{">=3.7":{"lib/*":["lib/ts3.7/*"]}},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.7","mocha":"^10.1.0","rocha":"^2.5.10","which":"^3.0.0","semver":"^7.3.8","deasync":"^0.1.28","ts-node":"~10.9.1","typedoc":"^0.23.21","fs-extra":"^10.1.0","gh-pages":"^4.0.0","node-gyp":"^9.3.0","prettier":"^2.8.0","benchmark":"^2.1.4","weak-napi":"^2.0.2","typescript":"~4.9.3","@types/chai":"^4.3.4","@types/node":"^18.11.9","prebuildify":"^5.0.1","@types/mocha":"^10.0.0","@types/which":"^2.0.1","npm-run-all2":"^6.0.4","@types/semver":"^7.3.13","downlevel-dts":"^0.11.0","@types/shelljs":"^0.8.11","electron-mocha":"^11.0.2","minify-all-cli":"^1.0.13","@types/fs-extra":"^9.0.13","@types/weak-napi":"^2.0.1","eslint-config-atomic":"^1.18.1","eslint-plugin-prettier":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/zeromq_6.0.0-beta.ably.2_1693433466125_0.015462489958259384","host":"s3://npm-registry-packages"}},"6.0.0-beta.ably.3":{"name":"@ably/zeromq","version":"6.0.0-beta.ably.3","keywords":["zeromq","zmq","0mq","ømq","libzmq","zmtp","message","messaging","queue","async","sockets","native","binding","addon","napi"],"author":{"name":"Rolf Timmermans","email":"rolf@zxcv.nl"},"license":"MIT","_id":"@ably/zeromq@6.0.0-beta.ably.3","maintainers":[{"name":"mschristensen","email":"mike@christensen.codes"},{"name":"ably-realtime","email":"account.owners@ably.com"},{"name":"simonw_ably","email":"simon.woolf@ably.com"},{"name":"owenpearson","email":"owen.pearson@ably.com"},{"name":"hingasellu","email":"hingasellu@gmail.com"},{"name":"ttypic","email":"khokhlov.e.n@gmail.com"},{"name":"andrii.bulat.ably","email":"andrii.bulat@ably.com"},{"name":"andytwf","email":"andyford993@gmail.com"},{"name":"splind06","email":"steven.lindsay@ably.com"},{"name":"zariel-ably","email":"chris.bannister@ably.com"},{"name":"mattheworiordan","email":"matthew.oriordan@gmail.com"},{"name":"vlad.velici.ably","email":"vlad.velici@ably.com"}],"homepage":"http://zeromq.github.io/zeromq.js/","bugs":{"url":"https://github.com/ably-forks/zeromq.js/issues"},"dist":{"shasum":"6067e255344ba85d18a21d96bca472936b2c1916","tarball":"https://registry.npmjs.org/@ably/zeromq/-/zeromq-6.0.0-beta.ably.3.tgz","fileCount":85,"integrity":"sha512-PO6wBh7wcZvZoJ7UpxVW+7SAOXQ94YZPCtlz0pr6MD1z9lh2KjBy1h8IqiuhrNGN9A4vFfUlybPntzyNYOls7w==","signatures":[{"sig":"MEYCIQDtS1w7R2sdsi45FNv06wcebpWejJEc5yshP9ZbihaWIwIhALXdPWA3c8un7QXYVxezr83xSxuOJFC5JXKuCEPe60Sf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1457817},"main":"lib/index.js","pnpm":{"overrides":{"typescript":"~4.9.3"}},"types":"lib/index.d.ts","engines":{"node":">= 10.2"},"gitHead":"b11c153f94248e1a1570d7ecab90ad4dee15996c","gypfile":true,"scripts":{"lint":"run-p lint.eslint lint.clang-format","test":"run-s build && mocha --exit","bench":"node --expose-gc test/bench","build":"run-s build.js build.native","clean":"shx rm -rf ./build ./lib/ ./prebuilds ./script/*.js ./script/*.js.map ./script/*.d.ts ./script/*.tsbuildinfo","install":"(shx test -f ./script/build.js || run-s build.js) && cross-env npm_config_build_from_source=true node-gyp-build","build.js":"run-p build.script build.library","prebuild":"run-s build.js && node ./script/prebuild.js","build.doc":"typedoc --options ./typedoc.json && minify-all -s docs-raw -d docs --jsCompressor terser","lint-test":"run-s lint-test.eslint","clean.temp":"shx rm -rf ./tmp && shx mkdir -p ./tmp && shx touch ./tmp/.gitkeep","deploy.doc":"run-s build.doc && gh-pages --dist \"./docs\"","build.debug":"run-s build.js build.native.debug","lint.eslint":"pnpm run lint-test.eslint --fix","build.native":"node-gyp configure --release && node-gyp build --release","build.script":"tsc -p ./script/tsconfig.json","build.library":"tsc -p ./src/tsconfig.json && run-s build.library.compat","prepublishOnly":"pnpm run build.js","lint-test.eslint":"eslint **/*.{ts,tsx,js,jsx,cjs,mjs,json,yaml} --no-error-on-unmatched-pattern --cache --cache-location ./.cache/eslint/","lint.clang-format":"clang-format -i -style=file ./src/*.cc ./src/*.h ./src/util/*.h","build.native.debug":"cross-env CMAKE_BUILD_TYPE=Debug node-gyp configure --debug && cross-env CMAKE_BUILD_TYPE=Debug node-gyp build --debug","test.electron.main":"run-s build && electron-mocha","test.skip_gc_tests":"run-s build.debug && cross-env SKIP_GC_TESTS=true mocha --exit","build.library.compat":"shx rm -rf ./lib/ts3.7 && downlevel-dts ./lib ./lib/ts3.7 --to=3.7","test.electron.renderer":"run-s build && electron-mocha --renderer"},"_npmUser":{"name":"ably-realtime","email":"account.owners@ably.com"},"repository":{"url":"git+https://github.com/ably-forks/zeromq.js.git","type":"git"},"_npmVersion":"10.9.4","description":"Next-generation ZeroMQ bindings for Node.js (ably fork)","directories":{},"_nodeVersion":"22.22.0","dependencies":{"shx":"^0.3.4","shelljs":"^0.8.5","cross-env":"^7.0.3","node-addon-api":"^6.0.0","@aminya/node-gyp-build":"4.5.0-aminya.4"},"typesVersions":{">=3.7":{"lib/*":["lib/ts3.7/*"]}},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.7","mocha":"^10.1.0","rocha":"^2.5.10","which":"^3.0.0","semver":"^7.3.8","deasync":"^0.1.28","ts-node":"~10.9.1","typedoc":"^0.23.21","fs-extra":"^10.1.0","gh-pages":"^4.0.0","node-gyp":"^9.3.0","prettier":"^2.8.0","benchmark":"^2.1.4","typescript":"~4.9.3","@types/chai":"^4.3.4","@types/node":"^18.11.9","prebuildify":"^5.0.1","@types/mocha":"^10.0.0","@types/which":"^2.0.1","npm-run-all2":"^6.0.4","@types/semver":"^7.3.13","downlevel-dts":"^0.11.0","@types/shelljs":"^0.8.11","electron-mocha":"^11.0.2","minify-all-cli":"^1.0.13","@types/fs-extra":"^9.0.13","eslint-config-atomic":"^1.18.1","eslint-plugin-prettier":"^4.2.1"},"_npmOperationalInternal":{"tmp":"tmp/zeromq_6.0.0-beta.ably.3_1770848567472_0.2690761377165325","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2023-08-30T20:30:33.182Z","modified":"2026-03-18T18:56:54.718Z","6.0.0-beta.ably.0":"2023-08-30T20:30:33.613Z","6.0.0-beta.ably.1":"2023-08-30T20:37:05.750Z","6.0.0-beta.ably.2":"2023-08-30T22:11:06.462Z","6.0.0-beta.ably.3":"2026-02-11T22:22:47.746Z"},"bugs":{"url":"https://github.com/ably-forks/zeromq.js/issues"},"author":{"name":"Rolf Timmermans","email":"rolf@zxcv.nl"},"license":"MIT","homepage":"http://zeromq.github.io/zeromq.js/","keywords":["zeromq","zmq","0mq","ømq","libzmq","zmtp","message","messaging","queue","async","sockets","native","binding","addon","napi"],"repository":{"url":"git+https://github.com/ably-forks/zeromq.js.git","type":"git"},"description":"Next-generation ZeroMQ bindings for Node.js (ably fork)","maintainers":[{"email":"mike@christensen.codes","name":"mschristensen"},{"email":"account.owners@ably.com","name":"ably-realtime"},{"email":"simon.woolf@ably.com","name":"simonw_ably"},{"email":"owen.pearson@ably.com","name":"owenpearson"},{"email":"khokhlov.e.n@gmail.com","name":"ttypic"},{"email":"lawrence.forooghian@ably.com","name":"lawrence.forooghian.ably"},{"email":"andrii.bulat@ably.com","name":"andrii.bulat.ably"},{"email":"andyford993@gmail.com","name":"andytwf"},{"email":"steven.lindsay@ably.com","name":"splind06"},{"email":"chris.bannister@ably.com","name":"zariel-ably"},{"email":"matthew.oriordan@gmail.com","name":"mattheworiordan"},{"email":"vlad.velici@ably.com","name":"vlad.velici.ably"}],"readme":"# ZeroMQ.js Next Generation\n\n[![Latest version](https://img.shields.io/npm/v/zeromq?label=version)](https://www.npmjs.com/package/zeromq) [![Greenkeeper monitoring](https://img.shields.io/badge/dependencies-monitored-brightgreen)](https://greenkeeper.io/) [![Travis build status](https://img.shields.io/travis/zeromq/zeromq.js)](https://travis-ci.org/zeromq/zeromq.js)\n\n## ⚠️ Version 6.0.0 (in beta) features a brand new API that solves many fundamental issues and is recommended for new projects. ⚠️\n\n## ⚠️ For the current stable version see the [5.x branch](https://github.com/zeromq/zeromq.js/tree/5.x) ⚠️\n\n[ØMQ](http://zeromq.org) bindings for Node.js. The goals of this library are:\n* Semantically similar to the [native](https://github.com/zeromq/libzmq) ØMQ library, while sticking to JavaScript idioms.\n* Use modern JavaScript and Node.js features such as `async`/`await` and async iterators.\n* High performance.\n* Fully usable with TypeScript (3+).\n\n## Useful links\n\n* [ZeroMQ.js API reference](http://zeromq.github.io/zeromq.js/globals.html).\n* [ZeroMQ project documentation](https://zeromq.org/get-started/).\n  * **Note:** The Node.js examples on zeromq.org do not yet reflect the new API, but [the Guide](http://zguide.zeromq.org) in particular is still a good introduction to ZeroMQ for new users.\n\n\n## Table of contents\n\n* [Installation](#installation)\n   * [Prebuilt binaries](#prebuilt-binaries)\n   * [Building from source](#building-from-source)\n* [Examples](#examples)\n   * [Push/Pull](#pushpull)\n   * [Pub/Sub](#pubsub)\n   * [Req/Rep](#reqrep)\n   * [TypeScript](#typescript)\n   * [More examples](#more-examples)\n   * [Compatibility layer for version 4/5](#compatibility-layer-for-version-45)\n* [Contribution](#contribution)\n* [History](#history)\n\n\n## Installation\n\nInstall **ZeroMQ.js** with prebuilt binaries:\n\n```sh\nnpm install zeromq@6.0.0-beta.17\n```\n\nRequirements for using prebuilt binaries:\n\n* Node.js 10.2+ or Electron 3+ (requires a [N-API](https://nodejs.org/api/n-api.html) version 3+)\n\n\n### Prebuilt binaries\n\nThe following platforms have a **prebuilt binary** available:\n\n* Linux on x86-64 with libstdc++.so.6.0.21+ (glibc++ 3.4.21+), for example:\n  * Debian 9+ (Stretch or later)\n  * Ubuntu 16.04+ (Xenial or later)\n  * CentOS 8+\n* Linux on x86-64 with musl, for example:\n  * Alpine 3.3+\n* MacOS 10.9+ on x86-64\n* Windows on x86/x86-64\n\nIf a prebuilt binary is not available for your platform, installing will attempt to start a build from source.\n\n### Building from source\n\nIf a prebuilt binary is unavailable or if you want to pass certain options during build, you can build this package from source.\n\nMake sure you have the following installed before attempting to build from source:\n\n* Node.js 10+ or Electron 3+\n* A working C++17 compiler toolchain with make\n* Python 3 with Node 12.13+ (or legacy Python 2.7)\n* CMake 2.8+\n* curl\n\nTo install from source:\n\n```sh\nnpm install zeromq@6.0.0-beta.17 --build-from-source\n```\n\nIf you want to link against a shared ZeroMQ library, you can build skip downloading `libzmq` and link with the\ninstalled library instead as follows:\n\n```sh\nnpm install zeromq@6.0.0-beta.17 --zmq-shared\n```\n\nIf you wish to use any DRAFT sockets then it is also necessary to compile the library from source:\n\n```sh\nnpm install zeromq@6.0.0-beta.17 --zmq-draft\n```\n\n## Examples\n\n**Note:** These examples assume the reader is familiar with ZeroMQ. If you are new to ZeroMQ, please start\nwith the [ZeroMQ documentation](https://zeromq.org/get-started/).\n\nMore examples can be found in the [examples directory](examples).\n\n### Push/Pull\n\nThis example demonstrates how a producer pushes information onto a\nsocket and how a worker pulls information from the socket.\n\n#### `producer.js`\n\nCreates a producer to push information onto a socket.\n\n```js\nconst zmq = require(\"zeromq\")\n\nasync function run() {\n  const sock = new zmq.Push\n\n  await sock.bind(\"tcp://127.0.0.1:3000\")\n  console.log(\"Producer bound to port 3000\")\n\n  while (true) {\n    await sock.send(\"some work\")\n    await new Promise(resolve => { setTimeout(resolve, 500) })\n  }\n}\n\nrun()\n```\n\n#### `worker.js`\n\nCreates a worker to pull information from the socket.\n\n```js\nconst zmq = require(\"zeromq\")\n\nasync function run() {\n  const sock = new zmq.Pull\n\n  sock.connect(\"tcp://127.0.0.1:3000\")\n  console.log(\"Worker connected to port 3000\")\n\n  for await (const [msg] of sock) {\n    console.log(\"work: %s\", msg.toString())\n  }\n}\n\nrun()\n```\n\n### Pub/Sub\n\nThis example demonstrates using `zeromq` in a classic Pub/Sub,\nPublisher/Subscriber, application.\n\n#### `publisher.js`\n\nCreate the publisher which sends messages.\n\n```js\nconst zmq = require(\"zeromq\")\n\nasync function run() {\n  const sock = new zmq.Publisher\n\n  await sock.bind(\"tcp://127.0.0.1:3000\")\n  console.log(\"Publisher bound to port 3000\")\n\n  while (true) {\n    console.log(\"sending a multipart message envelope\")\n    await sock.send([\"kitty cats\", \"meow!\"])\n    await new Promise(resolve => { setTimeout(resolve, 500) })\n  }\n}\n\nrun()\n```\n\n#### `subscriber.js`\n\nCreate a subscriber to connect to a publisher's port to receive messages.\n\n```js\nconst zmq = require(\"zeromq\")\n\nasync function run() {\n  const sock = new zmq.Subscriber\n\n  sock.connect(\"tcp://127.0.0.1:3000\")\n  sock.subscribe(\"kitty cats\")\n  console.log(\"Subscriber connected to port 3000\")\n\n  for await (const [topic, msg] of sock) {\n    console.log(\"received a message related to:\", topic, \"containing message:\", msg)\n  }\n}\n\nrun()\n```\n\n### Req/Rep\n\nThis example illustrates a request from a client and a reply from a server.\n\n#### `client.js`\n\n```js\nconst zmq = require(\"zeromq\")\n\nasync function run() {\n  const sock = new zmq.Request\n\n  sock.connect(\"tcp://127.0.0.1:3000\")\n  console.log(\"Producer bound to port 3000\")\n\n  await sock.send(\"4\")\n  const [result] = await sock.receive()\n\n  console.log(result)\n}\n\nrun()\n```\n\n#### `server.js`\n\n```js\nconst zmq = require(\"zeromq\")\n\nasync function run() {\n  const sock = new zmq.Reply\n\n  await sock.bind(\"tcp://127.0.0.1:3000\")\n\n  for await (const [msg] of sock) {\n    await sock.send(2 * parseInt(msg, 10))\n  }\n}\n\nrun()\n```\n\n## TypeScript\n\nThis library provides typings for TypeScript version 3.0.x and later.\n\n_Requirements_\n\n* For TypeScript version >= 3:\n  * [compilerOptions](https://www.typescriptlang.org/docs/handbook/compiler-options.html)\n* For TypeScript version < 3.6:\n  * either set `compilerOptions.target` to `esnext` or later (e.g. `es2018`)\n  * or add the following, or similar, libraries to `compilerOptions.lib`\n      (and include their corresponding polyfills if needed):\n      `es2015`, `ESNext.AsyncIterable`\n\n\n_Example Usage_\n\n```typescript\nimport { Request } from \"zeromq\"\n// or as namespace\nimport * as zmq from \"zeromq\"\n\nconst reqSock = new Request()\n//...\nconst repSock = new zmq.Reply()\n```\n\n### More examples\n\nMore advanced examples can be found in the [examples](examples) directory of this repository.\n\nOr you can [browse the API reference documentation](http://zeromq.github.io/zeromq.js/globals.html) to see all socket\ntypes, methods & options as well as more detailed information about how to apply them.\n\n\n### Compatibility layer for version 4/5\n\nThe next generation version of the library features a compatibility layer for ZeroMQ.js versions 4 and 5. This is\nrecommended for users upgrading from previous versions.\n\nExample:\n\n```js\nconst zmq = require(\"zeromq/v5-compat\")\n\nconst pub = zmq.socket(\"pub\")\nconst sub = zmq.socket(\"sub\")\n\npub.bind(\"tcp://*:3456\", err => {\n  if (err) throw err\n\n  sub.connect(\"tcp://127.0.0.1:3456\")\n\n  pub.send(\"message\")\n\n  sub.on(\"message\", msg => {\n    // Handle received message...\n  })\n})\n```\n\n## Contribution\n\nIf you are interested in making contributions to this project, please read the following sections.\n\n### Dependencies\n\nIn order to develop and test the library, you'll need the tools required to build from source ([see above](#building-from-source)).\n\nAdditionally, having clang-format is strongly recommended.\n\n\n### Defining new options\n\nSocket and context options can be set at runtime, even if they are not implemented by this library. By design, this\nrequires no recompilation if the built version of ZeroMQ has support for them. This allows library users to test and\nuse options that have been introduced in recent versions of ZeroMQ without having to modify this library. Of course\nwe'd love to include support for new options in an idiomatic way.\n\nOptions can be set as follows:\n\n```js\nconst {Dealer} = require(\"zeromq\")\n\n/* This defines an accessor named 'sendHighWaterMark', which corresponds to\n   the constant ZMQ_SNDHWM, which is defined as '23' in zmq.h. The option takes\n   integers. The accessor name has been converted to idiomatic JavaScript.\n   Of course, this particular option already exists in this library. */\nclass MyDealer extends Dealer {\n  get sendHighWaterMark(): number {\n    return this.getInt32Option(23)\n  }\n\n  set sendHighWaterMark(value: number) {\n    this.setInt32Option(23, value)\n  }\n}\n\nconst sock = new MyDealer({sendHighWaterMark: 456})\n```\n\nWhen submitting pull requests for new socket/context options, please consider the following:\n\n* The option is documented in the TypeScript interface.\n* The option is only added to relevant socket types, and if the ZMQ_ constant has a prefix indicating which type it\n  applies to, it is stripped from the name as it is exposed in JavaScript.\n* The name as exposed in this library is idiomatic for JavaScript, spelling out any abbreviations and using proper\n  `camelCase` naming conventions.\n* The option is a value that can be set on a socket, and you don't think it should actually be a method.\n\n### Testing\n\nThe test suite can be run with:\n\n```sh\nnpm install\nnpm run build\nnpm run test\n```\n\nThe test suite will validate and fix the coding style, run all unit tests and verify the validity of the included\nTypeScript type definitions.\n\nSome tests are not enabled by default:\n\n* API Compatibility tests from ZeroMQ 5.x have been disabled by default. You can include the tests with\n  `INCLUDE_COMPAT_TESTS=1 npm run test`\n* Some transports are not reliable on some older versions of ZeroMQ, the relevant tests will be skipped for those\n  versions automatically.\n\n### Publishing\n\nTo publish a new version, run:\n\n```sh\nnpm version <new version>\ngit push && git push --tags\n```\n\nWait for continuous integration to finish. Prebuilds will be generated for all supported platforms and attached to a Github release. Documentation is automatically generated and committed to `gh-pages`. Finally, a new NPM package version will be automatically released.\n\n## History\n\nVersion 6+ is a complete rewrite of previous versions of ZeroMQ.js in order to be more reliable, correct, and usable in\nmodern JavaScript & TypeScript code as first outlined in [this issue](https://github.com/zeromq/zeromq.js/issues/189).\nPrevious versions of ZeroMQ.js were based on `zmq` and a fork that included prebuilt binaries.\n\nSee detailed changes in the [CHANGELOG](CHANGELOG.md).\n","readmeFilename":"README.md"}