Crates.io | herscat |
lib.rs | herscat |
version | 0.1.1-libr2 |
created_at | 2025-08-15 10:21:40.120299+00 |
updated_at | 2025-08-17 16:09:44.084834+00 |
description | High-intensity xray proxy stress tester in Rust |
homepage | |
repository | |
max_upload_size | |
id | 1796539 |
size | 145,075 |
High-intensity xray proxy stress tester in Rust.
⚠️ For controlled load testing of proxy deployments you own or have explicit permission to test.
--url
) or a list file (--list
)HersCat orchestrates multiple xray-core instances and distributes HTTP download traffic across them using SOCKS5 to help you evaluate performance stability, concurrency limits, and resilience of your proxy setup.
xray-core
available in PATHwget https://github.com/XTLS/Xray-core/releases/latest/download/Xray-linux-64.zip
unzip Xray-linux-64.zip
sudo mv xray /usr/local/bin/
sudo chmod +x /usr/local/bin/xray
You can use any of the following:
cargo install herscat
git clone https://github.com/vffuunnyy/herscat.git
cd herscat
cargo build --release
# or install into ~/.cargo/bin
cargo install --path .
pacman -S herscat-bin
yay -S herscat-bin
paru -S herscat-bin
# etc.
Prebuilt images are published to GitHub Container Registry via GoReleaser.
# Pull the latest image
docker pull ghcr.io/vffuunnyy/herscat:latest
# Run with a single proxy URL
docker run --rm -it \
--network host \
ghcr.io/vffuunnyy/herscat:latest \
--url "vless://uuid@server.com:443?type=tcp&security=tls&sni=server.com"
# Run with a list file mounted into the container
docker run --rm -it \
--network host \
-v $(pwd)/proxies.txt:/data/proxies.txt:ro \
ghcr.io/vffuunnyy/herscat:latest \
--list /data/proxies.txt --concurrency 2000 --instances 10 --duration 300
Notes:
xray-core
; no extra mount is required.--network host
is recommended so the containerized tool can open SOCKS5 ports and generate load using host networking.# Single proxy URL (supports vless/trojan/ss)
herscat --url "vless://uuid@server.com:443?type=tcp&security=tls&sni=server.com"
# Multiple proxy URLs from a file (one per line)
herscat --list proxies.txt
Usage: herscat [OPTIONS] [COMMAND]
Options:
-u, --url <PROXY_URL> Proxy URL (vless/trojan/ss)
-l, --list <FILE> File with proxy URLs, one per line
-d, --duration <SECONDS> Test duration in seconds (0 = infinite) [default: 0]
-x, --instances <N> Number of xray-core instances [default: 5]
-p, --base-port <PORT> Base SOCKS5 port [default: 10808]
-c, --concurrency <N> Total concurrent downloads across all instances [default: 200]
--targets <URLS> Comma-separated custom target URLs for downloads
-v, --verbose Info logging
--debug Debug logging
--stats-interval <SECONDS> Statistics reporting interval [default: 5]
-h, --help Print help
-V, --version Print version
Commands:
completions <shell> Generate shell completions (bash|zsh|fish)
herscat \
--list servers.txt \
--concurrency 10000 \
--instances 20 \
--duration 600 \
--verbose
herscat \
--url "vless://uuid@server.com:443?type=tcp&security=tls" \
--targets "http://example.com/1gb.zip,http://example.com/5gb.zip" \
--concurrency 100
# bash
herscat completions bash > ~/.local/share/bash-completion/completions/herscat
# zsh
herscat completions zsh > ~/.local/share/zsh/site-functions/_herscat
# fish
herscat completions fish > ~/.config/fish/completions/herscat.fish
⚠️ IMPORTANT DISCLAIMER
This tool is built for legitimate penetration testing, benchmarking, and research. You must:
The authors and contributors are not responsible for misuse.
cargo fmt
cargo clippy
cargo test
Licensed under either of:
LICENSE-APACHE
LICENSE-MIT
You may choose either license.