{"id":15662961,"url":"https://github.com/melroy89/rambam","last_synced_at":"2025-05-13T00:11:38.917Z","repository":{"id":214694849,"uuid":"737132988","full_name":"melroy89/RamBam","owner":"melroy89","description":"Stress-test/benchmarking tool for HTTP with thousands of concurrent connections. Written in C++. Mirror of: https://gitlab.melroy.org/melroy/rambam","archived":false,"fork":false,"pushed_at":"2024-11-10T22:29:30.000Z","size":1124,"stargazers_count":5,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-01T05:01:40.763Z","etag":null,"topics":["api","benchmarking","benchmarking-utility","cpp20","rambam","stress","stress-test","stress-testing","testing","webapp"],"latest_commit_sha":null,"homepage":"https://gitlab.melroy.org/melroy/rambam","language":"C++","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/melroy89.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"melroy89","patreon":"Melroy","buy_me_a_coffee":"melroy","ko_fi":"melroy","liberapay":"melroy","custom":["https://melroy.org/thanks.html"]}},"created_at":"2023-12-29T23:28:54.000Z","updated_at":"2024-11-10T22:29:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"ed70b39d-8bbe-4201-b393-2ebd50323973","html_url":"https://github.com/melroy89/RamBam","commit_stats":{"total_commits":85,"total_committers":1,"mean_commits":85.0,"dds":0.0,"last_synced_commit":"89f40e5aad3bab70073ac96350613abbe275693d"},"previous_names":["melroy89/rambam"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/melroy89%2FRamBam","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/melroy89%2FRamBam/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/melroy89%2FRamBam/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/melroy89%2FRamBam/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/melroy89","download_url":"https://codeload.github.com/melroy89/RamBam/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253843219,"owners_count":21972874,"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":["api","benchmarking","benchmarking-utility","cpp20","rambam","stress","stress-test","stress-testing","testing","webapp"],"created_at":"2024-10-03T13:35:02.499Z","updated_at":"2025-05-13T00:11:38.889Z","avatar_url":"https://github.com/melroy89.png","language":"C++","funding_links":["https://github.com/sponsors/melroy89","https://patreon.com/Melroy","https://buymeacoffee.com/melroy","https://ko-fi.com/melroy","https://liberapay.com/melroy","https://melroy.org/thanks.html"],"categories":[],"sub_categories":[],"readme":"# RamBam\n\nRamBam is a stress-test/benchmarking tool for HTTP, using massive parallel HTTP requests.  \nRamBam is written in C++ and using a [Asio](https://think-async.com/Asio/) (also written in C++).\n\n## Demo\n\n![Demo of RamBam testing localhost](./demo.gif)\n\n## Download\n\n[Download the latest release](https://gitlab.melroy.org/melroy/rambam/-/releases).\n\n## Usage\n\nHelp: `rambam -h`\n\nUsage (_default:_ Number of Requests GET Test of \"_just_\" 100 requests):\n\n```bash\nrambam domain.tld\n```\n\nIncrease the default **request count** from 100 to 10.000 requests (`-r` for requests):\n\n```bash\nrambam -r 10000 https://domain.tld\n```\n\nUsing the **duration test** for 10 seconds (`-d` for duration):\n\n```bash\nrambam -d 10 https://domain.tld\n```\n\nExample using **Post requests** (`-p` for **JSON** Post data):\n\n```bash\nrambam -p '{\"username\": \"melroy\"}' https://domain.tld/api/v1/user/create\n```\n\nMore advanced parameters (`-v` for verbose output, `--debug` for additional TLS debug information):\n\n```bash\nrambam -v --debug https://domain.tld\n```\n\nYou can use multiple parameters together, except the `-d` for duration test (in seconds) and `-r` for request test (total requests). Just pick one of the two different tests.\n\n## Additional options\n\n- Enable debug output via: `--debug` flag.\n- If you have a self-signed certificate try to use `-o` flag to override verifcation or disable peer certificate verification using: `--disable-peer-verify` flag.\n- Silent all output via : `-s` flag.\n\n_Note:_ We don't support `transfer-encoding: chunked` (HTTP 1.1), hence we use only HTTP 1.0 requests.\n\n---\n\n## Developers\n\n### Requirements\n\n- C++ Compiler (`sudo apt install build-essential` for GNU compiler, _Clang is **also** supported_)\n- CMake (`sudo apt install cmake`)\n- OpenSSL (`sudo apt install libssl-dev openssl`)\n- Ninja build system (optional, but **recommended**: `sudo apt install ninja-build`)\n- Ccache (optional, but much **recommended**: `sudo apt install ccache`)\n\n### Build\n\nBuilding the RamBam binary is very easy:\n\n```bash\n# Configure build folder (prepare)\ncmake -B build\n# Build it! Using make\ncmake --build ./build -j 8 --config Release --target rambam\n```\n\nBinary is now located at: `build/rambam`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmelroy89%2Frambam","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmelroy89%2Frambam","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmelroy89%2Frambam/lists"}