HTTP CONNECT, forward and SOCKS5 ingress
Existing tools connect with a standard proxy URL. Organization keys identify the tenant, and per-org tunnel limits and org blocks apply on every connection.
Open source · AGPL-3.0-only
ProxyX is one binary with roles. A pool gateway routes HTTP CONNECT and SOCKS5 traffic to upstream provider pools; a session proxy intercepts and captures HTTP, HTTP/2 and WebSocket traffic; a control plane stores it and answers queries.
git clone https://github.com/noxred-research/proxyx.git
cd proxyx
cargo build --release -p proxyx
Capabilities
# start the pool gateway
$ proxyx gateway --config proxyx.toml
# route a request through it with an org key
$ curl -x http://ORG_KEY@localhost:8080 \
https://example.org
# open a capture session
$ curl -X POST http://localhost:8090/v1/sessions
Early development, version 0.1.0. The source repository is private for now; the code is licensed AGPL-3.0-only.
01Pool gateway
Clients speak plain HTTP CONNECT, forward-proxy HTTP or SOCKS5 to the gateway. It authenticates an organization key, picks an exit from the right provider pool and keeps the pool healthy while it does.
Existing tools connect with a standard proxy URL. Organization keys identify the tenant, and per-org tunnel limits and org blocks apply on every connection.
Residential, ISP, datacenter, mobile and static IP pools, or your own upstreams, are described in TOML. Username templating carries geo, session and sticky parameters to each provider.
Exits are leased, held for sticky sessions and rotated on demand, so a workload sees the identity it asked for for as long as it asked.
A circuit breaker per provider stops traffic to a failing upstream. Budgets and fair-use limits keep one organization from starving the rest.
Exit IPs are warmed and kept alive, checked from the outside, scored for reputation and reclaimed by a sweeper when they are no longer used.
Block signals from real traffic feed back into reputation scoring, and probes keep measuring providers when traffic is quiet.
02Session proxy
The session proxy gives each session its own credentials and listeners, then sits in the middle of its traffic. It can decrypt, rewrite, record and forward it, to the internet or on to another proxy.
HTTP, CONNECT and SOCKS5 listeners accept credentials that belong to one session, so a client never needs a shared key.
Decrypt HTTPS with a per-deployment certificate authority you create and trust. Leave interception off and the proxy tunnels TLS untouched.
Fingerprint profiles make upstream TLS handshakes look like a real browser's rather than the proxy's own.
Add or replace headers and point a session at a specific upstream without touching the client.
Send egress through the pool gateway, or through any upstream proxy you already operate.
Rate limits per organization run on a low-latency distributed token-bucket limiter, available as a standalone service with a client crate.
03Capture and control plane
Everything the session proxy sees is captured as structured records, moved through a broker into ClickHouse, and made available to query and export.
Create, get, extend and delete sessions over REST. A session carries its credentials, its listeners and its capture settings.
Requests, responses and WebSocket messages are recorded as they pass, for plain and intercepted TLS traffic alike.
A Redis Streams or Kafka-compatible broker decouples capture from storage. ClickHouse holds the traffic.
One query language, reachable over a REST endpoint or a GraphQL schema, for finding the traffic you captured.
Saved views export captured traffic to object storage, so analysis can happen outside the platform.
Prometheus metrics and OpenTelemetry traces from every role, with runbooks for operating them.
04Responsible use
A proxy sees what passes through it. You are responsible for the traffic you route and the traffic you capture.
05Architecture
A single Rust workspace builds proxyx. A role selects what the process
does: pool gateway, pool warmer and verifier, session proxy, control plane or limiter.
State lives in Postgres and Redis or Valkey.
Ingress
Pool plane
Limiter a standalone distributed token-bucket rate-limit service
Session plane
Control plane
State and storage
Prometheus metrics and OpenTelemetry traces cover every role. The full diagram is in the media kit →
06Quick start
You need a Rust toolchain, plus Postgres and Redis or Valkey for state. Replace
ORG_KEY with an organization key issued for your deployment.
Step 1 · Build
git clone https://github.com/noxred-research/proxyx.git
cd proxyx
cargo build --release -p proxyx
Step 2 · Start the pool gateway
proxyx gateway --config proxyx.toml
Step 3 · Send a request through the gateway
curl -x http://ORG_KEY@localhost:8080 https://example.org
07Control plane
The control plane creates, reads, extends and deletes capture sessions. Each response carries the credentials and listeners for that session; captured traffic is queried through the query DSL over REST or GraphQL.
curl -X POST http://localhost:8090/v1/sessions
08Open source
ProxyX is licensed under the GNU Affero General Public License, version 3 only — not “version 3 or later.” Third-party dependencies keep their own licenses and notices.
Use GitHub private vulnerability reporting. Please do not open public issues for suspected vulnerabilities, and do not include live credentials or captured personal data in a report.