{"id":50958648,"url":"https://github.com/denoload/denoload","last_synced_at":"2026-06-18T11:00:56.553Z","repository":{"id":162252540,"uuid":"636836743","full_name":"denoload/denoload","owner":"denoload","description":"Modern load testing tool using JavaScript and TypeScript, inspired by k6.","archived":false,"fork":false,"pushed_at":"2024-06-14T18:28:41.000Z","size":1237,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-16T18:01:47.069Z","etag":null,"topics":["benchmark","bun","javascript","k6","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/denoload.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-05T19:03:55.000Z","updated_at":"2025-03-12T18:43:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"f59b6257-bba7-4cd7-ba62-6b1707ecb4a7","html_url":"https://github.com/denoload/denoload","commit_stats":null,"previous_names":["negrel/cassette","negrel/denoload"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/denoload/denoload","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denoload%2Fdenoload","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denoload%2Fdenoload/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denoload%2Fdenoload/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denoload%2Fdenoload/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/denoload","download_url":"https://codeload.github.com/denoload/denoload/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denoload%2Fdenoload/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34487073,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-18T02:00:06.871Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmark","bun","javascript","k6","typescript"],"created_at":"2026-06-18T11:00:42.046Z","updated_at":"2026-06-18T11:00:56.506Z","avatar_url":"https://github.com/denoload.png","language":"TypeScript","funding_links":["https://www.buymeacoffee.com/negrel"],"categories":[],"sub_categories":[],"readme":"![denoload sauropod](./.github/images/sauropod.png)\n\n# 🦕 `denoload` - Accelerate web API load testing with seamless client library integration.\n\n![denoload ascii art](./.github/images/ascii.png)\n\n`denoload` is a versatile load testing tool engineered to simplify the load\ntesting of web services and similar backend components. It seamlessly integrate\nwith client libraries, empowering developers to create robust load tests in just\nminutes. With `denoload`, you can verify the performance of your web services\nunder real-world conditions, all while enjoying a straightforward and efficient\ntesting process.\n\nIt is strongly inspired by [k6][k6].\n\n## Why ?\n\n[k6][k6] is a great tool but it's lacking of libraries and community due to its\ncustom JavaScript VM and API. Worse, there are edge cases where the VM isn't\nstandard and can not be. This can lead to a **lot** frustration.\n\n`denoload` aims to be an alternative with:\n\n- great performance (comparable to [k6][k6])\n- write [k6][k6] like scripts with VUs, iterations and executors\n- standard web APIs support (e.g. [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API))\n- ESModules support\n- Modern JavaScript \u0026 TypeScript support out of the box (including `async` /\n  `await`)\n\nThis project is based on [Bun][bun].\n\n## Example script\n\n```ts\nimport { faker } from \"@faker-js/faker\";\nimport { GoTrueClient } from \"@supabase/gotrue-js\";\nimport { globalRegistry } from \"@negrel/denoload-metrics\";\nimport expect from \"expect\";\n\nexport const options = {\n  scenarios: {\n    perVuIter: {\n      executor: \"per-vu-iterations\",\n      vus: 256,\n      iterations: 10,\n    },\n  },\n};\n\nconst AuthClient = new GoTrueClient({ url: \"http://gotrue.local\" });\nconst signUpCounter = globalRegistry.Counter(\"signup\");\nconst signOutCounter = globalRegistry.Counter(\"signout\");\n\nexport default async function (): Promise\u003cvoid\u003e {\n  // Sign up and sign in.\n  {\n    const { data, error } = await AuthClient.signUp({\n      email: faker.internet.email(),\n      password: faker.internet.password(),\n    });\n    expect(error).toBeNull();\n    expect(data).not.toBeNull();\n    signUpCounter.add(1);\n  }\n\n  await Bun.sleep(1000);\n\n  // Interact with your API...\n\n  // Sign out.\n  {\n    const { error } = await AuthClient.signOut();\n    expect(error).toBeNull();\n    signOutCounter.add(1);\n  }\n}\n```\n\nSee [examples/gotrue](./examples/gotrue/) to run the script locally.\n\n## TODOs\n\nExecutors:\n\n- [x] Per VU iterations\n- [x] Shared iterations\n- [x] Constant VUs\n- [ ] Ramping VUs\n- [ ] Constant Arrival Rate\n- [ ] Ramping Arrival Rate\n\n## Why `denoload` ?\n\nThe project was originally based on the [Deno](https://deno.land) runtime but I\nswitched to [Bun][bun] for VU [isolation using ShadowRealm](https://github.com/tc39/proposal-shadowrealm/).\n\n## Contributing\n\nIf you want to contribute to `denoload` to add a feature or improve the code contact\nme at [negrel.dev@protonmail.com](mailto:negrel.dev@protonmail.com), open an\n[issue](https://github.com/negrel/denoload/issues) or make a\n[pull request](https://github.com/negrel/denoload/pulls).\n\n## :stars: Show your support\n\nPlease give a :star: if this project helped you!\n\n[![buy me a coffee](.github/images/bmc-button.png)](https://www.buymeacoffee.com/negrel)\n\n## :scroll: License\n\nMIT © [Alexandre Negrel](https://www.negrel.dev/)\n\n[k6]: https://k6.io/\n[bun]: https://bun.sh/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenoload%2Fdenoload","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdenoload%2Fdenoload","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenoload%2Fdenoload/lists"}