aikusuma / proxy.rs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

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.

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:
    git clone https://github.com/zevtyardt/proxy.rs.git
  • Navigate to the cloned repository directory:
    cd proxy.rs
  • Run cargo install --path . to install.

or install directly using the command

cargo install --git https://github.com/zevtyardt/proxy.rs

Usage

Usage: proxy-rs [OPTIONS] <COMMAND>

Commands

  • grab: Find proxies without performing any checks.
  • find: Find and check proxies.
  • serve: Run a local proxy server (BETA)

Options

  • --max-conn <MAX_CONN>: The maximum number of concurrent checks of proxies. Default: 200.
  • -t, --timeout <TIMEOUT>: Time in seconds before giving up. Default: 8.
  • --log <LOG_LEVEL>: 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:

proxy-rs find --types HTTP HTTPS -l 10 --levels High --countries ID

Options

  • --types <TYPES>...: Type(s) (protocols) to check for proxy support. Possible values: HTTP, HTTPS, SOCKS4, SOCKS5, CONNECT:80, CONNECT:25.
  • --files <FILES>...: Path to the file with proxies. If specified, it is used instead of providers.
  • --levels <LEVELS>...: Level(s) of anonymity (for HTTP only). By default, any level. Possible values: Transparent, Anonymous, High.
  • --max-tries <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 <COUNTRIES>...: List of ISO country codes where the proxies should be located.
  • -l, --limit <LIMIT>: The maximum number of working proxies. Default: 0.
  • -f, --format <FORMAT>: The format in which the results will be presented. Default: default. Possible values: default, text, json.
  • -o, --outfile <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):

proxy-rs grab --countries ID --limit 10 --outfile ./proxies.txt

Options

  • -c, --countries <COUNTRIES>...: List of ISO country codes where the proxies should be located.
  • -l, --limit <LIMIT>: The maximum number of working proxies. Default: 0.
  • -f, --format <FORMAT>: The format in which the results will be presented. Default: default. Possible values: default, text, json.
  • -o, --outfile <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 file for further details.

About

License:MIT License


Languages

Language:Rust 100.0%