Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Feature flags

Zuli ProxyBroker Extended is a library first and a CLI second, so almost everything beyond the core find/check engine is behind a cargo feature. This keeps the default binary lean and lets pure-library users pull in only what they need. Every feature below is declared in Cargo.toml.

The default set

default = ["cli", "server", "geo", "geo-bundled"]

The default build gives you the proxybroker binary, the local rotating server, country geolocation, and the embedded DB-IP database. --no-default-features strips all of that back to the bare library — the find/check engine with no CLI, no server, and no geo.

Every feature

FeatureDefaultEnablesPulls in
cliyesThe proxybroker binary: arg parsing, output formatting, logging setup.clap, tracing-subscriber
serveryesThe local rotating proxy server (serve, Pool, Strategy).—
geoyesCountry-lookup code (GeoDb).maxminddb
geo-bundledyesEmbeds the DB-IP Country Lite database (~3.9 MB gzipped). Turn off to supply your own.— (implies geo)
metricsnoPrometheus metrics endpoint for serve (a hand-rolled text exporter).— (implies server)
progressnoLive progress bar during find.indicatif (implies cli)
persistnoThe Store trait + observer machinery for --state. No backend of its own.—
store-sqlitenoSQLite backend for --state. Bundled SQLite: static link, no system libsqlite3.rusqlite (implies persist)
store-redisnoRedis backend for --state (atomic EWMA upsert via a Lua script).redis (implies persist)
tuinoThe proxybroker top terminal dashboard.ratatui, crossterm (implies cli + server)
watchnoLive-reload of the serve --load file via a filesystem watcher.notify (implies server)
mcpnoExposes the live pool over MCP stdio (proxybroker mcp).rmcp (implies server + cli)
connectornoA drop-in hyper-util connector routing each connection through the rotating pool.tower-service, hyper-util/client-legacy (implies server)

Features that imply others do so through cargo’s dependency edges — enabling tui, for example, automatically turns on cli and server.

Common combinations

CLI only — no server, no geo. The smallest useful binary: find and check proxies, print them, but do not open a listening socket or bundle a geo database.

cargo build --no-default-features --features cli

No geo. Keep the CLI and server, drop the geo code and the bundled database entirely (no attribution duty, a smaller binary):

cargo build --no-default-features --features cli,server

Persistence with a backend. The persist feature is only the Store contract; pair it with a backend:

cargo build --features store-sqlite      # or store-redis

musl-clean by design. The whole default graph is ring-only (rustls with rustls-no-provider + the ring provider installed at startup), so aws-lc-rs — whose -sys C/asm crate is the musl cross-compile blocker — never enters the dependency tree. This is not a feature you toggle; it holds for the default build and the optional backends: store-sqlite compiles SQLite from source (static, no system library), and store-redis uses a ring-only rustls for rediss://. So a --target x86_64-unknown-linux-musl build works with the default features and the stores alike.