{"id":25015309,"url":"https://github.com/eronbello/loadbuster","last_synced_at":"2025-03-30T06:15:49.074Z","repository":{"id":273773109,"uuid":"920832297","full_name":"Eronbello/loadbuster","owner":"Eronbello","description":"LoadBuster is a CLI-based performance and stress testing tool written in Go, allowing you to easily test concurrency, load, and custom request bodies for your HTTP endpoints.","archived":false,"fork":false,"pushed_at":"2025-01-22T21:11:15.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-05T08:19:30.473Z","etag":null,"topics":["go","golang","testing"],"latest_commit_sha":null,"homepage":"","language":"Go","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/Eronbello.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":"2025-01-22T21:05:58.000Z","updated_at":"2025-01-22T21:12:05.000Z","dependencies_parsed_at":"2025-01-22T22:30:15.352Z","dependency_job_id":null,"html_url":"https://github.com/Eronbello/loadbuster","commit_stats":null,"previous_names":["eronbello/loadbuster"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eronbello%2Floadbuster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eronbello%2Floadbuster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eronbello%2Floadbuster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eronbello%2Floadbuster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Eronbello","download_url":"https://codeload.github.com/Eronbello/loadbuster/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246281310,"owners_count":20752213,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["go","golang","testing"],"created_at":"2025-02-05T08:19:34.918Z","updated_at":"2025-03-30T06:15:49.052Z","avatar_url":"https://github.com/Eronbello.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# LoadBuster\n\n**LoadBuster** is a CLI-based performance and stress testing tool written in Go. It allows you to quickly configure concurrency, duration, HTTP method, headers, and raw request bodies for load tests against any HTTP endpoint.\n\n## Features\n\n- **Simulates concurrent users** with configurable concurrency.\n- **Duration-based tests**, letting you run short or extended load scenarios.\n- **Supports all HTTP methods** (GET, POST, PUT, DELETE, etc.).\n- **Customizable headers**, including authorization tokens.\n- **Raw request bodies**, such as JSON or any text, directly through a command-line flag.\n- **Basic metrics collection**, including total requests, successful and failed requests, and min/avg/max latencies.\n- **Docker and Docker Compose compatibility** for consistent, containerized testing environments.\n\n## Quick Start\n\n1. **Clone the repository:**\n   ```bash\n   git clone https://github.com/yourusername/loadbuster.git\n   cd loadbuster\n   ```\n\n2. **Build from source:**\n   ```bash\n   go build -o loadbuster ./cmd/loadbuster\n   ```\n\n3. **Run a sample load test:**\n   ```bash\n   ./loadbuster start --url https://api.example.com --method POST --concurrency 10 --duration 15s --auth \"Bearer xyz123\" --body '{\"id\":\"3\"}'\n   ```\n   This example sends a JSON body to `https://api.example.com` using a POST request, with 10 concurrent workers for 15 seconds, including a bearer token in the authorization header.\n\n## Docker Usage\n\n1. **Build the Docker image:**\n   ```bash\n   docker build -t loadbuster .\n   ```\n\n2. **Run LoadBuster in a container:**\n   ```bash\n   docker run --rm loadbuster start --url https://api.example.com --method POST --concurrency 10 --duration 10s --auth \"Bearer xyz123\" --body '{\"id\":\"3\"}'\n   ```\n\n## Docker Compose\n\n1. **Customize the `docker-compose.yml` file** to specify your preferred URL, method, concurrency, duration, and request body.\n\n2. **Run LoadBuster:**\n   ```bash\n   docker-compose up --build\n   ```\n\n## Contributing\n\nContributions, bug reports, and feature requests are welcome! Please open an issue or submit a pull request following the project's guidelines for style, testing, and commit practices.\n\n## License\n\n**LoadBuster** is licensed under the MIT License. Use, modify, and distribute freely while respecting the terms detailed in the LICENSE file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feronbello%2Floadbuster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feronbello%2Floadbuster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feronbello%2Floadbuster/lists"}