{"_id":"@ably-labs/locust","_rev":"16-dd2614dee3d3fbf793067002f1f1a56c","name":"@ably-labs/locust","dist-tags":{"latest":"0.0.7"},"versions":{"0.0.1":{"name":"@ably-labs/locust","version":"0.0.1","author":{"name":"Lewis Marshall","email":"lewis.marshall@ably.com"},"license":"Apache-2.0","_id":"@ably-labs/locust@0.0.1","maintainers":[{"name":"ably-labs","email":"devrel@ably.com"}],"homepage":"https://github.com/ably-labs/ably-locust#readme","bugs":{"url":"https://github.com/ably-labs/ably-locust/issues"},"dist":{"shasum":"20ffdeb7577bcf6ff8357b61c6efc7cdb1f65da2","tarball":"https://registry.npmjs.org/@ably-labs/locust/-/locust-0.0.1.tgz","fileCount":17,"integrity":"sha512-Sg3nvL6H9EUPPQh0onkV9cpUPu4GX3diAQnNgq8Oi0titGSb6nKSq50K8i90n86E1U49KAOiu0g402d2PeBIEQ==","signatures":[{"sig":"MEYCIQCTaTjypTdFIt2V2nkz73aMuSidY20xpOGav9LTM6g6qAIhAM/brPA8uLEI2kJI2C5MtzEow1wfl+Y566/ZJVCi9m0C","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":54848,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuyDjCRA9TVsSAnZWagAAYi0P/0hRTfVmMhX8wHwCeKtD\nE3NbbdQb0nIiWeOTi92c0686OnOvYhjb90Dj5G1LavOTV3ZJpzc+JQh/3m8a\nwAa9GhWIJVKHwNWbQ0dtyKAkvz6c1G7w9vN7jsl4XxLRVY2f79xAHlE3MrUP\njLTQdNBBCELbzVykOT8+EHf8ybFe642IK15EHEm0nYr/Dy7+BzAFReHzHl7I\nwsKcFXhthz0PiSTJ/H7swNMoVcAxSpr7+fdM1TjlniZJV/uzXUiqUI7A2dme\nG9E/8j4XxsSqara0VXfSjjad7HZKJ0RwEXwFQb6JI5n7S5ljyQrvMwj/LayL\na2dkxAjnSLjEjLEDTFjlIgffnDqYmcEmiFNo8DZf5Cc6Tm8ze+VOKyhT9jaa\nY1NuAuApgqxWFbBhjhy3rciUqhMX8p5ePbCf6bxXAk0hQzRhwpjn28G8DtJZ\nMaajd9gXB0CH75Sf3BPeKmOlQPfLpEezY1+ciO5ypEl0l1XIqM2AfJ7b525k\nxziot8DT5yHiJ9kII7y+w81GMyx+nPCH9wZ3lBxDIX6mrrWbyXR+eV7BbQ4m\nLdkQZPeJZvxtpQTLFeoB0kLwwjCcJPRLBrPq9O2Mrkk2dgm3IzeoE6wUNTYo\nxwgLNTg/YSJh/d7MCjg4A7tneg7EeT+reuECVblSKH1gQQuUlEO+BfwMjY5/\naue6\r\n=ob+q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","types":"./lib/index.d.ts","gitHead":"a5fad6c7f0a4598cfb6657c4e3cad2ae53b02b87","scripts":{"lint":"tslint -p tsconfig.json","test":"jest","build":"tsc --build","clean":"tsc --build --clean","format":"prettier --write 'src/**/*.ts'"},"_npmUser":{"name":"ably-labs","email":"devrel@ably.com"},"repository":{"url":"git+https://github.com/ably-labs/ably-locust.git","type":"git"},"_npmVersion":"8.1.0","description":"A JavaScript load generator for Locust.io.","directories":{},"_nodeVersion":"16.10.0","dependencies":{"zeromq":"^6.0.0-beta.6","winston":"^3.3.3","msgpack5":"^5.3.2"},"_hasShrinkwrap":false,"devDependencies":{"got":"^11.8.2","jest":"^27.3.1","tslint":"^6.1.3","ts-jest":"^27.0.7","prettier":"^2.4.1","typescript":"^4.4.4","@types/jest":"^27.0.2","@types/msgpack5":"^3.4.2","tslint-config-prettier":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/locust_0.0.1_1636375827386_0.6081699415640489","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@ably-labs/locust","version":"0.0.2","author":{"name":"Lewis Marshall","email":"lewis.marshall@ably.com"},"license":"Apache-2.0","_id":"@ably-labs/locust@0.0.2","maintainers":[{"name":"ably-labs","email":"devrel@ably.com"}],"homepage":"https://github.com/ably-labs/ably-locust#readme","bugs":{"url":"https://github.com/ably-labs/ably-locust/issues"},"dist":{"shasum":"85702a036c58b4d9b5b2d094f1548bdd61f323ca","tarball":"https://registry.npmjs.org/@ably-labs/locust/-/locust-0.0.2.tgz","fileCount":17,"integrity":"sha512-LP7E4kJuIhvldS836AHOm0KIT7LkwS/9TVvriwlDylKwCg+tleAQxEHNtbeqdIy5zZ24A+oWWIrjtDBbdzQAYw==","signatures":[{"sig":"MEQCICHRjHoOsgUf9R6qYaRKEeqf/q4Jb7RQLxseIbU94bHtAiBAj0XZC+3AKepy//n5hOmkpyoD7Q1mjApeZJ4d8CxHpQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55667,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh3hGxCRA9TVsSAnZWagAAOoMP/0ALJpdD/RWTera67BRA\njT8CgffhsXXK2qB9Izzs9EYhQAb+b13XGeXjSzQVDv29htWFTsUOQSDl8rfQ\nKAlkLyPdHtTkJenLRwjSwQYGJij7FenUdjkxSDcPxZ4FpszYGB2Fb0p1q3mt\nfesPay16iEE3RajzA0a8ZdDRGBlC2UdtoNL02oIFN5uNKuN+wgMdZikhdU9m\nTzsZ7JD8Ie7tMG+6ZsH/kpReHG6LWokEizfLBqvMAwgjekOWK3Urp1KwZk9T\nVAZGythS6HRhMH3qSGtohohzIZmhDgegO5ZjvptefPfwWD0hExGAbRfEkIuk\nXkUZEncV6fLLkrETEhOFMSlv6qWq9craMkJ3NGKMxNPXnzfQCF7W7oQcI5R8\nC9cmeDDO4KiY0pxmRQc0w3HBXLEdwiw96k9H1rjq1wUfZcCYTMyjm5WpaeNO\nQJWUo+VVJl+mv1LFa5i59WYqsxyMfK+YAJE2T+RGTlcPGDb3vBFeEVZy7SnH\nnOzojk0VxaeZK3RS6nL8rHz2/23wxKueNat1+lBKFIzJaZI56rlhf3Oc7WMX\ntCBivIDnPMgNOMajH60LFnhqFEFtu07qgj9REHLUnwm4HWVBhCiZBbXz2VIO\nx0+EPzMGrmqqv+G9QUq1ayw5458KDNyYV90XMgslDXgF7MyWuR1gHbPGUR97\nC7XC\r\n=45PO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"fdf84e4c81105c0ebbf96a0ccb262ae7fffb3bcd","scripts":{"lint":"tslint -p tsconfig.json","test":"jest","build":"tsc --build","clean":"tsc --build --clean","format":"prettier --write 'src/**/*.ts'"},"_npmUser":{"name":"ably-labs","email":"devrel@ably.com"},"repository":{"url":"git+https://github.com/ably-labs/ably-locust.git","type":"git"},"_npmVersion":"8.1.0","description":"A JavaScript load generator for Locust.io.","directories":{},"_nodeVersion":"16.10.0","dependencies":{"zeromq":"^6.0.0-beta.6","winston":"^3.3.3","msgpack5":"^5.3.2"},"_hasShrinkwrap":false,"devDependencies":{"got":"^11.8.2","jest":"^27.3.1","tslint":"^6.1.3","ts-jest":"^27.0.7","prettier":"^2.4.1","typescript":"^4.4.4","@types/jest":"^27.0.2","@types/msgpack5":"^3.4.2","tslint-config-prettier":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/locust_0.0.2_1641943473169_0.28613519165873713","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@ably-labs/locust","version":"0.0.3","author":{"name":"Lewis Marshall","email":"lewis.marshall@ably.com"},"license":"Apache-2.0","_id":"@ably-labs/locust@0.0.3","maintainers":[{"name":"ably-labs","email":"devrel@ably.com"}],"homepage":"https://github.com/ably-labs/ably-locust#readme","bugs":{"url":"https://github.com/ably-labs/ably-locust/issues"},"dist":{"shasum":"28c5d25d701f49e9c53dd848f6de7bd2f3f88166","tarball":"https://registry.npmjs.org/@ably-labs/locust/-/locust-0.0.3.tgz","fileCount":17,"integrity":"sha512-d0ux83/So4tWrEXgYjaGXMh4k0aOqX0+p8QHGBAHxMOSQG3xNL38P+8SuMZhhPMeLxUBd/h+LKkcEMLQhJK9hw==","signatures":[{"sig":"MEYCIQDcMXhyi2HaY4cDZgeW6DylN9+PPal2L8yTlxereLRhLgIhAL3sxRH4frk/QKYFm1NJWaMbWSyl0bVQjjkE3dbJl9rt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55667,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4t7GCRA9TVsSAnZWagAA+xQQAImdVvllfVZ7XLgeMBDI\nDiPFIq3HaerV2MdAweqW2iN7YK6uO6GbxO0mGLeutlXEw5nxZiMZiz8OmfpT\np4gRxPgt11Zd3bK2t0Fpna8iAsW/rI9BlrVrvfW2w3snThUVQGugR89gMfsc\nm1oB7+L4TXo2f2AU7fN7Z1bMpCqS9u9gbuH/1N/wQ+AfqKOY1UauhA2c4hmr\nOX2QMRaw5ia5v8M/c0I2wu/WMsZDJ5JWY5vEpzlevbLlNObLtsUy1MVxQ+2Y\n8Jij24cq/4mUtYFx6HvCGh4X02QPt5C3R8iQeFH20IaslEE2AAgJJIWFNvHC\n7ebzVaLwsWFxVNtoKZ9gFhSe6cY+6BQMTtCtuWw1SUGzJ1QOaPKXcdSA9X95\nHgWQoOLJhpLyqqS8sZPWhY4s4L58XHy2Au3yHlkdX4T4DmH7kVSZTUh7v+ni\nyzaa6uUj2zW/0NOQiDWzrPbOXGH5SY3lk7Ue7QkWLz4EhzKlsG7sXCHjHsuK\nJCZmGMrJxDdqUivLOgFt8ohZQTYkBxPG7C4dXiyzJ6cvmyJ1QdpRiHwzAEoV\nAxXs18yr2wUKutMAgl7URfndln7EIWFSAiExXs2SO9+DIuFjQ86FppZTxN7P\nLbsh7v/iv8bDA2gRwJphxhRGmjcJv4K5yau4pLyMYL496MjNYOlIVkwGh3XB\nBbvX\r\n=DlEw\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"25641556172abb139916ce4ac3fbd70d0acf58c9","scripts":{"lint":"tslint -p tsconfig.json","test":"jest","build":"tsc --build","clean":"tsc --build --clean","format":"prettier --write 'src/**/*.ts'"},"_npmUser":{"name":"ably-labs","email":"devrel@ably.com"},"repository":{"url":"git+https://github.com/ably-labs/ably-locust.git","type":"git"},"_npmVersion":"8.3.1","description":"A JavaScript load generator for Locust.io.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"zeromq":"^6.0.0-beta.6","winston":"^3.3.3","msgpack5":"^5.3.2"},"_hasShrinkwrap":false,"devDependencies":{"got":"^11.8.2","jest":"^27.3.1","tslint":"^6.1.3","ts-jest":"^27.0.7","prettier":"^2.4.1","typescript":"^4.4.4","@types/jest":"^27.0.2","@types/msgpack5":"^3.4.2","tslint-config-prettier":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/locust_0.0.3_1642258117954_0.26437778144170987","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"@ably-labs/locust","version":"0.0.4","author":{"name":"Lewis Marshall","email":"lewis.marshall@ably.com"},"license":"Apache-2.0","_id":"@ably-labs/locust@0.0.4","maintainers":[{"name":"ably-labs","email":"devrel@ably.com"}],"homepage":"https://github.com/ably-labs/ably-locust#readme","bugs":{"url":"https://github.com/ably-labs/ably-locust/issues"},"dist":{"shasum":"40c1abf1e084df174732d65ac49b203e343e88f8","tarball":"https://registry.npmjs.org/@ably-labs/locust/-/locust-0.0.4.tgz","fileCount":17,"integrity":"sha512-wuOeTTF1ECwa15tLT9LnYirE0vO+DCikPwdl+1HHblUvAl+qsk+tslRHL6oiI6Y476EahEIsUtVya/VK5k8L4g==","signatures":[{"sig":"MEUCIQD/28CfHY6BiHBV3Zc9LlgUMGUgAzkgoVZ5R5S+F5T38AIgX9MPtK/e3ESJIgRlfG0wXaLrT3w5ez3a6j4tsnrjeno=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":57618,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4uXMCRA9TVsSAnZWagAApocQAIiKBwwmzrBEtH0QcBnx\nmmMlzOs/zxfh+4skQgCsF1KHKKDLVNr+AcQa23nt45eCGJl4UOrVrR9DUGBC\nFoW3mJ80nx35fZ3JGAOagtL7pYbRuh04RMxJJyXg76x0QG43AVVDa2CkOLch\nbmO1UyLXvpISrBHkiAlaorGhzwdojQ6Hl6EjJ56sVUX0iYWfXcaYQE+xrSsy\nythZFNF7J/B9pJhrGnjAwxyKwI29NpnjrKrOLioPOfctFcNpZPA2CG/uU2oU\nRte9XreZ0GGTaZeLHQzonZFJ1oRD3QZKZMDijoLOoOFzmFh5ZNrZ4fZkYMMs\n1THDYk2TZ28fM71J1zARNEu9ecE5CsSQ4EV/QEHGI3Gzg1OZPWqn2AXh7053\nEngHUocVv91MMgGOrmTsc8fw4y+LQtYayESxV4zy+u2gd/NvCFmh4NY8dd97\nPiuA2IH52n7ndibePyuwMbz/szCdCEcTYHMpNvr/Lo0syn2POeCx7FQY8xmu\nOWfwBka9PINPh2qOtp2G6uikhFcNbSs//bTUDnyeu8WlchJ2poIN2u5wocMd\nOKRFuKXXvxWl6OvELCuUnKJdwMT/eS+8T1gjpbUZJVZFARZM/kdKCO2zxJgz\nXo8LBU0umC2eK83ftQFfwf90lM8yx7z09Q3fCTln0axP/x577KskbXhPF6d9\nirUc\r\n=f6nW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"0d0f05ec3918e4842714412d8d5b2519347742b7","scripts":{"lint":"tslint -p tsconfig.json","test":"jest","build":"tsc --build","clean":"tsc --build --clean","format":"prettier --write 'src/**/*.ts'"},"_npmUser":{"name":"ably-labs","email":"devrel@ably.com"},"repository":{"url":"git+https://github.com/ably-labs/ably-locust.git","type":"git"},"_npmVersion":"8.3.1","description":"A JavaScript load generator for Locust.io.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"zeromq":"^6.0.0-beta.6","winston":"^3.3.3","msgpack5":"^5.3.2"},"_hasShrinkwrap":false,"devDependencies":{"got":"^11.8.2","jest":"^27.3.1","tslint":"^6.1.3","ts-jest":"^27.0.7","prettier":"^2.4.1","typescript":"^4.4.4","@types/jest":"^27.0.2","@types/msgpack5":"^3.4.2","tslint-config-prettier":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/locust_0.0.4_1642259916102_0.8452547307938179","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"@ably-labs/locust","version":"0.0.5","author":{"name":"Lewis Marshall","email":"lewis.marshall@ably.com"},"license":"Apache-2.0","_id":"@ably-labs/locust@0.0.5","maintainers":[{"name":"ably-labs","email":"devrel@ably.com"}],"homepage":"https://github.com/ably-labs/ably-locust#readme","bugs":{"url":"https://github.com/ably-labs/ably-locust/issues"},"dist":{"shasum":"4df95b4def136cb1aeb385e3c18cf93a22d117a3","tarball":"https://registry.npmjs.org/@ably-labs/locust/-/locust-0.0.5.tgz","fileCount":17,"integrity":"sha512-T8xCnxBU5PreIkzVLzIfXp4jrw1RnnY7ekmRjcilDKjUcaR5StmacqdAI/m9RHvOqQNswngiSV5FNppz1ZNdcA==","signatures":[{"sig":"MEQCIDwUtgrAI6P99J70lMLHBd6/oUj+J+qnxXhcR+baiYQ6AiBVapoOMuvSz7HcHpgtu935nEWTwlK8+ur9qyBT2Oo9kw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":57942,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh9GhvCRA9TVsSAnZWagAA56gP/2DsBxITkv0CBtf803ge\nAgmczWTGQyQFrtvyvJI1zb5I36MAud22EPcFvL+NqN7ZGnLDmMDp6gO5qGqu\n9ZDm4RELPUO8fIM/gjU9oFN/m3cxyeKFG4C2r9WlMszwGJaIdcUS7Y7zyvPL\nDwGAs+X0zEXj05C13YjaK0Mcdl/RYazoiJv6OyG0rn6uVGd+FLoTYqCnqAE3\nXN8pfM7AGTC3g2yPc49mxEO9YlHoIWHDCtKVqt4eOZTy4PEfEyUgEvas/W2g\n/om4OlsehnQ1lVJYhBARnFU4xWu7dTHZ6UrexB7gk2zfmmGbrQDRxFgKNjm9\nhhI+akD7IlE2HeqJehBelDNrZhw/YdatmcV2TRchBIAsAnN1GwOgleB7c1SK\n6p9UsHKVo6ZMJfOQBXWO54IHADaHF62g3jWdQGCZ2LPbsePG0JVCdXvL9UPA\nOtFVUUiaGD6hX8OJs8FHUXezPj/UDsQhbhoeIFrcVe1duf4A2dVWyz1qy22+\neWISAguIpCeXQpzJCBcfjjRawfTw9l5lonGJEj+cO/ZIuqXFpBqQxC1YJZ6k\nG6+bPsPdCQ5E/A0XoqIGNZ6XXM4Ur0zWRMC+zM1/2hH5O3jRRsdt9JKJz+Nq\n2SPBGKFRu85YszdKHurIOwDmOSXYWl6AJR45SfKwswqquFsVJRbyFMvgkcYc\n0IEi\r\n=YPuY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"08873854a4530ca81708515424a56c3760ac52d8","scripts":{"lint":"tslint -p tsconfig.json","test":"jest","build":"tsc --build","clean":"tsc --build --clean","format":"prettier --write 'src/**/*.ts'"},"_npmUser":{"name":"ably-labs","email":"devrel@ably.com"},"repository":{"url":"git+https://github.com/ably-labs/ably-locust.git","type":"git"},"_npmVersion":"8.3.1","description":"A JavaScript load generator for Locust.io.","directories":{},"_nodeVersion":"16.13.2","dependencies":{"zeromq":"^6.0.0-beta.6","winston":"^3.3.3","msgpack5":"^5.3.2"},"_hasShrinkwrap":false,"devDependencies":{"got":"^11.8.2","jest":"^27.3.1","tslint":"^6.1.3","ts-jest":"^27.0.7","prettier":"^2.4.1","typescript":"^4.4.4","@types/jest":"^27.0.2","@types/msgpack5":"^3.4.2","tslint-config-prettier":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/locust_0.0.5_1643407471318_0.16990310258608265","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"@ably-labs/locust","version":"0.0.6","author":{"name":"Lewis Marshall","email":"lewis.marshall@ably.com"},"license":"Apache-2.0","_id":"@ably-labs/locust@0.0.6","maintainers":[{"name":"andrii.bulat.ably","email":"andrii.bulat@ably.com"},{"name":"mschristensen","email":"mike@christensen.codes"},{"name":"ttypic","email":"khokhlov.e.n@gmail.com"},{"name":"ably-labs-user","email":"devrel@ably.com"},{"name":"lmars","email":"lewis@lmars.net"},{"name":"owenpearson","email":"owen.pearson@ably.com"},{"name":"ably-realtime","email":"account.owners@ably.com"}],"homepage":"https://github.com/ably-labs/ably-locust#readme","bugs":{"url":"https://github.com/ably-labs/ably-locust/issues"},"dist":{"shasum":"ba48af2e32cff5436bfd68462b58c23ad51f45bb","tarball":"https://registry.npmjs.org/@ably-labs/locust/-/locust-0.0.6.tgz","fileCount":17,"integrity":"sha512-Frd/MkkHugy29XAODO3ePwnJaD0mngmPbn+LIX4lJ+p+38czm8PmUkW3w8pE8jKq7ipvW9TT9lb70zfHQNmHwA==","signatures":[{"sig":"MEQCID70Fg47iCT8B0hVIN0CTJWw+KFoMz1w1khIeejKUAvDAiBLOlNjvvAeeCOU4JWnMcNt4J32b38eCOYPIie3ALaqgA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57981},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"d84559a50a489fedd15e2336084a00e267836204","scripts":{"lint":"tslint -p tsconfig.json","test":"jest","build":"tsc --build","clean":"tsc --build --clean","format":"prettier --write 'src/**/*.ts'"},"_npmUser":{"name":"ably-realtime","email":"account.owners@ably.com"},"repository":{"url":"git+https://github.com/ably-labs/ably-locust.git","type":"git"},"_npmVersion":"10.9.4","description":"A JavaScript load generator for Locust.io.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"winston":"^3.3.3","msgpack5":"^5.3.2","@ably/zeromq":"^6.0.0-beta.ably.3"},"_hasShrinkwrap":false,"devDependencies":{"got":"^11.8.2","jest":"^27.3.1","tslint":"^6.1.3","ts-jest":"^27.0.7","prettier":"^2.4.1","typescript":"^4.4.4","@types/jest":"^27.0.2","@types/msgpack5":"^3.4.2","tslint-config-prettier":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/locust_0.0.6_1770849003578_0.059517626074861996","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@ably-labs/locust","version":"0.0.7","description":"A JavaScript load generator for Locust.io.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"build":"tsc --build","clean":"tsc --build --clean","format":"prettier --write 'src/**/*.ts'","lint":"tslint -p tsconfig.json","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/ably-labs/ably-locust.git"},"author":{"name":"Lewis Marshall","email":"lewis.marshall@ably.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/ably-labs/ably-locust/issues"},"homepage":"https://github.com/ably-labs/ably-locust#readme","devDependencies":{"@types/jest":"^27.0.2","@types/msgpack5":"^3.4.2","got":"^11.8.2","jest":"^27.3.1","prettier":"^2.4.1","ts-jest":"^27.0.7","tslint":"^6.1.3","tslint-config-prettier":"^1.18.0","typescript":"^4.4.4"},"dependencies":{"@ably/zeromq":"^6.0.0-beta.ably.3","msgpack5":"^5.3.2","winston":"^3.3.3"},"_id":"@ably-labs/locust@0.0.7","gitHead":"2c4ec3c58b5029697d8f622f6879cbc323de9aa4","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-B+bobeiMv/70uC8Ni+xIzjoKgCShIJIDwxwi6r6tqsB4h6Dj4K35usQ+BlsxeP1kqeCkUlp8Ua1JbnvbQw7VHw==","shasum":"91acb54416ed8055410ffb2ee1d2f484f48cef2d","tarball":"https://registry.npmjs.org/@ably-labs/locust/-/locust-0.0.7.tgz","fileCount":17,"unpackedSize":57999,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFbNSyZHH3/So+B0+8xRuUTO4cVk8fCrYGEAs3gh6au7AiBkvRNysth3CVqMtQRTOpbZioqrsXkzcVLXB66+6xA0mQ=="}]},"_npmUser":{"name":"ably-realtime","email":"account.owners@ably.com"},"directories":{},"maintainers":[{"name":"andrii.bulat.ably","email":"andrii.bulat@ably.com"},{"name":"mschristensen","email":"mike@christensen.codes"},{"name":"ttypic","email":"khokhlov.e.n@gmail.com"},{"name":"ably-labs-user","email":"devrel@ably.com"},{"name":"lmars","email":"lewis@lmars.net"},{"name":"owenpearson","email":"owen.pearson@ably.com"},{"name":"ably-realtime","email":"account.owners@ably.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/locust_0.0.7_1770929892569_0.7322692216847972"},"_hasShrinkwrap":false}},"time":{"created":"2021-11-08T12:50:27.326Z","modified":"2026-02-12T20:58:13.221Z","0.0.1":"2021-11-08T12:50:27.553Z","0.0.2":"2022-01-11T23:24:33.449Z","0.0.3":"2022-01-15T14:48:38.144Z","0.0.4":"2022-01-15T15:18:36.236Z","0.0.5":"2022-01-28T22:04:31.459Z","0.0.6":"2026-02-11T22:30:03.738Z","0.0.7":"2026-02-12T20:58:12.726Z"},"bugs":{"url":"https://github.com/ably-labs/ably-locust/issues"},"author":{"name":"Lewis Marshall","email":"lewis.marshall@ably.com"},"license":"Apache-2.0","homepage":"https://github.com/ably-labs/ably-locust#readme","repository":{"type":"git","url":"git+https://github.com/ably-labs/ably-locust.git"},"description":"A JavaScript load generator for Locust.io.","maintainers":[{"name":"andrii.bulat.ably","email":"andrii.bulat@ably.com"},{"name":"mschristensen","email":"mike@christensen.codes"},{"name":"ttypic","email":"khokhlov.e.n@gmail.com"},{"name":"ably-labs-user","email":"devrel@ably.com"},{"name":"lmars","email":"lewis@lmars.net"},{"name":"owenpearson","email":"owen.pearson@ably.com"},{"name":"ably-realtime","email":"account.owners@ably.com"}],"readme":"# ably-locust\n\nA JavaScript load generator for [Locust.io](https://locust.io).\n\n---\n\n_[Ably](https://ably.com) is the platform that powers synchronized digital experiences in realtime. Whether attending an event in a virtual venue, receiving realtime financial information, or monitoring live car performance data – consumers simply expect realtime digital experiences as standard. Ably provides a suite of APIs to build, extend, and deliver powerful digital experiences in realtime for more than 250 million devices across 80 countries each month. Organizations like Bloomberg, HubSpot, Verizon, and Hopin depend on Ably’s platform to offload the growing complexity of business-critical realtime data synchronization at global scale. For more information, see the [Ably documentation](https://ably.com/documentation)._\n\n---\n\n## Quick Start\n\nSee [example/users.ts](/example/users.ts) for an example of defining Locust users in TypeScript, and [example/index.ts](/example/index.ts) for an example program which connects to a Locust master and runs the defined users during a load test.\n\nThe example can be run by copying `example/.env.sample` to `example/.env`, setting `ABLY_API_KEY` to your Ably API key, and running [Docker Compose](https://docs.docker.com/compose/):\n\n```bash\ncd example\n\ncp .env.sample .env\n\n# ... edit ABLY_API_KEY in .env ...\n\ndocker compose up --build\n```\n\nVisit the Locust web UI at http://localhost:8089, start a load test, and you should see `subscribe` and `publish` events reported by the JavaScript users.\n\n## Locust\n\n[Locust](https://locust.io) is an open source load testing tool which supports two modes of operation. The first is standalone mode where there is a single Locust process generating the load, collecting statistics, and serving the web UI, and the second is distributed mode where there is a Locust master process serving the web UI, but also exposing a ZeroMQ socket to communicate with Locust worker processes which generate the load and report statistics back to the Locust master. `ably-locust` expects Locust to be running in distributed mode.\n\nLocust has the concept of a User which runs a set of requests during a load test. The User periodically reports statistics about those tasks which appear in the web UI (e.g. if they succeed or fail, what latency is encountered, the content size, etc.). Locust Users are typically defined in Python code in a file named `locustfile.py` and passed to Locust as a command line flag, whereas Users are defined in JavaScript code when using `ably-locust`.\n\n## Usage\n\n`ably-locust` is an implementation of a Locust worker process in JavaScript. It can be installed by running:\n\n```bash\nnpm install @ably-labs/locust\n```\n\nRather than being a program which accepts user definitions via a command line flag like a Locust Python worker, `ably-locust` is a library which is used within a containing program which also includes the user definition.\n\nThe `Worker` class is instantiated with the URI of the Locust master ZeroMQ socket, and a function is registered with the worker to instantiate each of the user classes the Locust master is configured with (i.e. any classes in the `locustfile.py` passed to the Locust master which inherit from the Locust `User` class, see [here](http://docs.locust.io/en/stable/writing-a-locustfile.html#user-class)). The worker then interacts with the Locust master by sending and receiving msgpack-encoded messages over the ZeroMQ socket.\n\nOne of the messages a worker receives is a `spawn` message which declares how many users of each class should be running at any given time, and the worker responds by starting and/or stopping users as appropriate.\n\nFor example, assuming there is a Locust master running at `locust.example.com:5557` which is using the following `locustfile.py`:\n\n```python\nfrom locust import User\n\nclass ExampleUser(User):\n    pass\n```\n\nThen here's an example program where each user reports a successful request every second:\n\n```javascript\nconst { Worker } = require('@ably-labs/locust');\n\nconst worker = new Worker({\n  locustUri: 'tcp://locust.example.com:5557',\n  workerID:  'my-worker-123',\n});\n\nclass User {\n  start() {\n    this.interval = setInterval(() => {\n      const latency = 100;\n      const contentLength = 1024;\n      worker.stats.logRequest('my-request-type', latency, contentLength);\n    }, 1000);\n  }\n\n  stop() {\n    clearInterval(this.interval);\n  }\n}\n\nworker.register('ExampleUser', () => new User());\n\nworker.run();\n```\n\n## Testing\n\nStart an instance of Locust and run the tests:\n\n```bash\ncd tests\n\ndocker compose up --build\n\nnpm test\n```\n","readmeFilename":"README.md"}