{"id":17343596,"url":"https://github.com/maxmindlin/locust","last_synced_at":"2025-08-01T18:31:32.338Z","repository":{"id":222911523,"uuid":"758717519","full_name":"maxmindlin/locust","owner":"maxmindlin","description":"MITM super proxy and proxy manager","archived":false,"fork":false,"pushed_at":"2024-03-21T01:36:26.000Z","size":956,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-16T16:48:02.867Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","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/maxmindlin.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}},"created_at":"2024-02-16T22:58:41.000Z","updated_at":"2024-07-10T14:01:36.000Z","dependencies_parsed_at":"2024-02-16T23:42:42.296Z","dependency_job_id":"ce3edda3-3dcc-49fb-989c-8c01a4b4640b","html_url":"https://github.com/maxmindlin/locust","commit_stats":null,"previous_names":["maxmindlin/locust"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxmindlin%2Flocust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxmindlin%2Flocust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxmindlin%2Flocust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxmindlin%2Flocust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maxmindlin","download_url":"https://codeload.github.com/maxmindlin/locust/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228397785,"owners_count":17913539,"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":[],"created_at":"2024-10-15T16:09:46.054Z","updated_at":"2024-12-06T01:40:35.187Z","avatar_url":"https://github.com/maxmindlin.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/maxmindlin/locust/main/assets/logo2.png\" width=\"400\"\u003e\u003cbr\u003e\n\u003cp style=\"font-size:0.5em;color:#d4d4d4\"\u003eMITM proxy and proxy management tool\u003c/p\u003e\n\u003cimg alt=\"GitHub License\" src=\"https://img.shields.io/github/license/maxmindlin/locust?style=for-the-badge\"\u003e\n\u003cimg alt=\"GitHub Release\" src=\"https://img.shields.io/github/v/release/maxmindlin/locust?style=for-the-badge\"\u003e\n\u003cimg alt=\"GitHub Actions Workflow Status\" src=\"https://img.shields.io/github/actions/workflow/status/maxmindlin/locust/ci.yml?style=for-the-badge\u0026label=CI\"\u003e\n\u003cimg alt=\"Docker version\" src=\"https://img.shields.io/docker/v/mmindlin/locust?style=for-the-badge\u0026logo=docker\u0026color=blue\"\u003e\n\u003c/div\u003e\n\n# Locust\n\nLocust is a MITM proxy that routes traffic to various upstream proxies. Locust comes with a CLI that facilitates proxy configuration, importing, querying, and creating custom Squid proxies that are automatically used by the proxy server.\n\n## Installation\n\nSee [releases](https://github.com/maxmindlin/locust/releases/latest) for binaries and installation instructions.\n\n## Features\n\n- Proxy server that smartly routes traffic to an appropriate upstream proxy.\n  - Easily configurable via a tagging system.\n- CLI that makes managing proxies easy.\n  - File importing that works out of the box with known proxy providers.\n  - Squid proxy farm commands that allow for the creation, deletion, and cycling of squid VMs that are automatically picked up and used by the server (currently only works with GCP).\n  - Configuration commands that make sure your proxies work out of the box.\n  - Querying via tags that gives visibility into proxies without having to execute SQL.\n\nLocust is a super proxy that maintains a pool of upstream proxies that it uses to route traffic to the requested web resources. As a user, you use it like any other proxy. When Locust receives a web request it analyzes the target URL and determines which proxy is best for the given request.\n\n\u003cbr\u003e\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/maxmindlin/locust/main/assets/diagram.png\" width=\"600\"\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\nLocust keeps track of metadata and metrics about every web request it completes in order to continually fine tune which proxies to use and remove bad ones. You can also tag web domains in order to instruct Locust to limit the pool of proxies it will choose from for requests to these domains.\n\nVia the CLI, you can also create and cycle Squid proxies in your GCP account which Locust will automatically start using as they are created.\n\n## Requirements\n\n### CLI\n\n1. `gloud` CLI installed and authenticated.\n2. using the `farm` command will require sufficient GCP privileges for VM creation and destruction.\n3. ENV vars set with the proper PostgreSQL connection parameters. See `.env` file for default settings.\n\n### Proxy server\n\nThe proxy server currently runs as a dockerfile. A compose file is provided as well for easy spinup. Without the compose you will need ENV vars set with the proper PostgreSQL connection parameters. See `.env` file for the default settings.\n\n## Usage\n\n### CLI\n\n- `locust-cli -h`\n\n### Proxy server\n\nDocker compose:\n\n- `docker-compose up --build`\n\nDocker image can be ran without compose, but you must ensure that it is provided with ENV vars for PSQL connection parameters.\n\n### TLS\n\nLocust uses its own self-signed certs for HTTPS requests. In order to use Locust as a trusted CA, you must add its cert as a trusted source in your OS keychain.\n\n1. Open `locust/src/ca/locust.cer` with Keychain Access app.\n2. Double-click the Locust cert.\n3. Set the Trust option to `Always Trust`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxmindlin%2Flocust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxmindlin%2Flocust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxmindlin%2Flocust/lists"}