# Proxy.rs Proxy.rs is a high-speed proxy tool built with Rust, featuring three main functionalities: scraper, checker and serve (beta).
## What's New - **Improved Performance**: Experience a remarkable **300% increase in performance**. Searching and checking a single proxy now only takes 3-5 seconds. - **Reduced Memory Consumption**: Enjoy a more optimized memory usage with a **35% reduction**. The tool now operates efficiently, requiring only ±125 MB of memory. - **New Feature: Serve**: Run a local proxy server directly from proxy-rs (beta). Seamlessly host your own proxy server for enhanced flexibility and control. ## Preview ![Proxy.rs Preview](./images/preview.svg) ## Features - High-speed performance: Built with Rust for optimal speed. - Support protocols: HTTP(S), SOCKS4/5. Also CONNECT method to ports 80 and 25 (SMTP) - Version update notification. - Work as a proxy server that distributes incoming requests to external proxies. With automatic proxy rotation. - Proxies may be filtered by type, anonymity level, country. - Automatically removes duplicate proxies. - Is asyncronous.
List of proxy sources:
- [x] `https://api.good-proxies.ru/getfree.php?count=1000&key=freeproxy` - [x] `https://api.proxyscrape.com/?request=getproxies&proxytype=http` - [x] `https://api.proxyscrape.com/?request=getproxies&proxytype=socks4` - [x] `https://api.proxyscrape.com/?request=getproxies&proxytype=socks5` - [x] `https://free-proxy-list.net` - [x] `https://openproxylist.xyz/http.txt` - [x] `https://premiumproxy.net/full-proxy-list` - [x] `https://proxypedia.org/` - [x] `https://proxyspace.pro/http.txt` - [x] `https://proxyspace.pro/https.txt` - [x] `https://raw.githubusercontent.com/B4RC0DE-TM/proxy-list/main/HTTP.txt` - [x] `https://raw.githubusercontent.com/HyperBeats/proxy-list/main/http.txt` - [x] `https://raw.githubusercontent.com/TheSpeedX/SOCKS-List/master/http.txt` - [x] `https://raw.githubusercontent.com/TheSpeedX/SOCKS-List/master/socks5.txt` - [x] `https://raw.githubusercontent.com/almroot/proxylist/master/list.txt` - [x] `https://raw.githubusercontent.com/andigwandi/free-proxy/main/proxy_list.txt` - [x] `https://raw.githubusercontent.com/aslisk/proxyhttps/main/https.txt` - [x] `https://raw.githubusercontent.com/fahimscirex/proxybd/master/proxylist/http.txt` - [x] `https://raw.githubusercontent.com/TheSpeedX/PROXY-List/blob/master/socks4.txt` - [x] `https://raw.githubusercontent.com/hendrikbgr/Free-Proxy-Repo/master/proxy_list.txt` - [x] `https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-http.txt` - [x] `https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-https.txt` - [x] `https://raw.githubusercontent.com/mertguvencli/http-proxy-list/main/proxy-list/data.txt` - [x] `https://raw.githubusercontent.com/miyukii-chan/proxy-list/master/proxies/http.txt` - [x] `https://raw.githubusercontent.com/mmpx12/proxy-list/master/http.txt` - [x] `https://raw.githubusercontent.com/mmpx12/proxy-list/master/https.txt` - [x] `https://raw.githubusercontent.com/monosans/proxy-list/main/proxies/http.txt` - [x] `https://raw.githubusercontent.com/monosans/proxy-list/main/proxies/socks4.txt` - [x] `https://raw.githubusercontent.com/monosans/proxy-list/main/proxies/socks5.txt` - [x] `https://raw.githubusercontent.com/zevtyardt/proxy-list/main/all.txt` - [x] `https://www.ipaddress.com/proxy-list` - [x] `https://www.megaproxylist.net/` - [x] `https://www.proxyscan.io/download?type=http` - [x] `https://www.proxyscan.io/download?type=https` - [x] `https://www.proxyscan.io/download?type=socks4` - [x] `https://www.proxyscan.io/download?type=socks5` **total sources: 36**
## Installation > **Note** : You must have `~/.cargo/bin/` in your `PATH` to run `proxy-rs` directly. - Install Rust and Cargo. - Install Git. - Clone this repository by running the command: ```bash git clone https://github.com/zevtyardt/proxy.rs.git ``` - Navigate to the cloned repository directory: ```bash cd proxy.rs ``` - Run `cargo install --path .` to install. or install directly using the command ```bash cargo install proxy-rs ``` ## Usage ``` Usage: proxy-rs [OPTIONS] ``` **Commands** - `grab`: Find proxies without performing any checks. - `find`: Find and check proxies. - `serve`: Run a local proxy server (**BETA**) **Options** - `--max-conn `: The maximum number of concurrent checks of proxies. Default: 200. - `-t, --timeout `: Time in seconds before giving up. Default: 8. - `--log `: Logging level. Default: warn. Possible values: debug, info, warn, error. ## Examples ### find Find and show 10 HTTP(S) proxies from ID (Indonesia) with the high level of anonymity: ```bash proxy-rs find --types HTTP HTTPS -l 10 --levels High --countries ID ``` ![](./images/find.svg) **Options** - `--types ...`: Type(s) (protocols) to check for proxy support. Possible values: HTTP, HTTPS, SOCKS4, SOCKS5, CONNECT:80, CONNECT:25. - `--files ...`: Path to the file with proxies. If specified, it is used instead of providers. - `--levels ...`: Level(s) of anonymity (for HTTP only). By default, any level. Possible values: Transparent, Anonymous, High. - `--max-tries `: The maximum number of attempts to check a proxy. Default: 1. - `--support-cookies`: Flag indicating that the proxy must support cookies. - `--support-referer`: Flag indicating that the proxy must support referer. - `-c, --countries ...`: List of ISO country codes where the proxies should be located. - `-l, --limit `: The maximum number of working proxies. Default: 0. - `-f, --format `: The format in which the results will be presented. Default: default. Possible values: default, text, json. - `-o, --outfile `: Save found proxies to a file. By default, the output is displayed on the console. ### grab Find and save to a file 10 ID proxies (without a check): ```bash proxy-rs grab --countries ID --limit 10 --outfile ./proxies.txt ``` ![](./images/grab.svg) **Options** - `-c, --countries ...`: List of ISO country codes where the proxies should be located. - `-l, --limit `: The maximum number of working proxies. Default: 0. - `-f, --format `: The format in which the results will be presented. Default: default. Possible values: default, text, json. - `-o, --outfile `: Save found proxies to a file. By default, the output is displayed on the console. ### serve Run a local proxy server that distributes incoming requests to a pool of found HTTP(S) proxies with the high level of anonymity: _still in progress_ ## Currently Under Development The following features are currently being worked on: - Implementing proxy DNSBL (Domain Name System Blacklist) checking for enhanced security. - Improving the speed of the proxy checker for faster validation. - Added more providers - Implement redirect handling in the proxy server. ## Contribution Contributions to Proxy.rs are welcome! Here's how you can contribute: - Fork this repository. - Clone the forked repository to your local machine. - Create a new branch for your changes. - Implement your enhancements and commit them. - Push the branch to your GitHub repository. - Open a pull request in this repository, describing your changes and why they should be merged. ## License Proxy.rs is licensed under the MIT License. See the [LICENSE](https://github.com/zevtyardt/proxy.rs/blob/main/LICENSE) file for further details.