{"id":19460560,"url":"https://github.com/bjarneo/rip","last_synced_at":"2025-04-25T07:33:18.699Z","repository":{"id":43209608,"uuid":"461254609","full_name":"bjarneo/rip","owner":"bjarneo","description":"Rest in peace(s) - HTTP/UDP load testing tool","archived":false,"fork":false,"pushed_at":"2022-03-30T06:00:20.000Z","size":423,"stargazers_count":54,"open_issues_count":1,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-06-19T02:02:11.989Z","etag":null,"topics":["ddos","go","golang","http","learning-by-doing","load-testing","rip","security-tools","sre","sre-infra","udp-flood"],"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/bjarneo.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}},"created_at":"2022-02-19T16:54:45.000Z","updated_at":"2024-06-19T02:02:11.990Z","dependencies_parsed_at":"2022-09-09T13:40:58.488Z","dependency_job_id":null,"html_url":"https://github.com/bjarneo/rip","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjarneo%2Frip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjarneo%2Frip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjarneo%2Frip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bjarneo%2Frip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bjarneo","download_url":"https://codeload.github.com/bjarneo/rip/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223990007,"owners_count":17237201,"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":["ddos","go","golang","http","learning-by-doing","load-testing","rip","security-tools","sre","sre-infra","udp-flood"],"created_at":"2024-11-10T17:37:33.065Z","updated_at":"2024-11-10T17:37:33.688Z","avatar_url":"https://github.com/bjarneo.png","language":"Go","readme":"# RIP\n\nThis is a HTTP load testing and UDP flood attack tool that run requests concurrently.\n\nNote: I am using this project as a Go learning project. Refactors will most likely happen often.\n\nLooking for new features? Create an issue.\n\n![RIP](./rip.gif)\n\n## Features\n\n- HTTP load testing\n- UDP flood attack\n- Run requests concurrently\n- Set an interval in seconds\n- Continuous statistics output\n- Log the requests to $HOME/rip.log\n- Supports multiple hosts\n- POST/PUT/PATCH HTTP requests\n- HTTP JSON payload\n- Custom HTTP headers\n- Proxy HTTP requests\n- Limit the requests per concurrent user\n\n## Coming\n\n- UDP payload attachment\n- Form data payload\n- JSON output of the result\n\n## Usage\n\nInstall the binary (windows, osx, linux) from \u003chttps://github.com/bjarneo/rip/releases\u003e, or go directly to the build the binary manually step.\n\n```bash\n#### Standard by using one host\nrip -concurrent 100 -interval 10 https://your.domain.com\n\n#### Multiple hosts\ntouch hosts.txt\n\n# Add the content, important that each host is on a newline\nhttp://localhost:5000\nhttp://localhost:5000/dis-is-nice\nhttp://localhost:5000/yas\n\n# RIP\nrip --interval=10 --hosts=hosts.txt\n\n#### Using UDP flood attack\nrip --interval=10 --concurrent=10 --udp --udp-bytes=4096 0.0.0.0:30000\n\n#### Using a JSON payload for POST requests\nrip --interval=10 --concurrent=10 --post --json=payload.json http://localhost:5000/login\n\n#### Example using custom headers\ntouch headers.txt\n\n# Add the content\nX-Real-Ip: 192.168.0.1\nAuthorization: Basic aGV5OnlvdQo=\n\n# RIP\nrip --interval=10 --concurrent=10 --headers=headers.txt http://localhost:5000\n```\n\n### The default values\n\n```bash\nUsage of RIP\n  --concurrent int\n        How many concurrent users to simulate (default 10)\n  --requests int\n        Max requests per concurrent user at a time (default 0 which means disabled)\n  --hosts string\n        A file of hosts. Each host should be on a new line. It will randomly choose a host. (default \"\")\n  --headers string\n        Path to the headers file (default \"\")\n  --interval int\n        How many seconds to run the test (default 60)\n  --json string\n        Path to the JSON payload file to be used for the HTTP requests (default \"\")\n  --logger bool\n        Log the requests to $HOME/rip.log (default false)\n  --patch bool\n        PATCH HTTP request (default false)\n  --post bool\n        POST HTTP request (default false)\n  --put bool\n        PUT HTTP request (default false)\n  --proxy string\n        The proxy URL to route the traffic (default \"\")\n  --udp bool\n        Run requests UDP flood attack and not http requests (default false)\n  --udp-bytes int\n        Set the x bytes for the UDP flood attack (default 2048)\n\n\n```\n\n## Get it up and running [DEV]\n\n```bash\n# Install dependencies\ngo install\n\n# By using the go binary directly\ngo run main.go\n```\n\n## Build the binary manually\n\nTo use the bleeding edge codebase, this is the way.\n\n```bash\n# Build binary\ngo build\n\n# Now it will be available as \"rip\"\nrip http://localhost:1337\n```\n\n## Troubleshooting\n\nIf you get this error message `socket: too many open files`, you might want to increase your ulimit to a higher number.\n\n```bash\nulimit -n 12000\n```\n\n## Disclaimer\n\nUse this tool at your own risk. The owner of this repository is not responsible for its usage.\n\n## LICENSE\n\nSee [LICENSE](./LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbjarneo%2Frip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbjarneo%2Frip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbjarneo%2Frip/lists"}