Skip to main content

trillium-cli

A single trillium binary that bundles the most useful pieces of the trillium.rs web stack into a batteries-included HTTP toolkit:

  • serve — a static file server (and drop-in reverse proxy)
  • proxy — a reverse / forward proxy with upstream load-balancing and caching
  • gateway — a config-driven server combining static files + proxy across one or more listeners
  • client — a curl-like HTTP client that pretty-prints JSON and follows redirects
  • bench — a load generator with HDR-histogram latency statistics
  • dev-server — a watch / rebuild / restart loop with browser live-reload (Unix only)
  • grpc — generate Rust modules from .proto service definitions

TLS is built in (rustls by default), and with the default h3 feature the servers also speak HTTP/3 over QUIC. Over TLS the client negotiates HTTP/2 via ALPN; --http-version selects the protocol (HTTP/1.0 through HTTP/3) for client and bench.

Install

The quickest path is a prebuilt binary — every release ships them for macOS, Linux, and Windows, with every subcommand already enabled:

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/trillium-rs/trillium-cli/releases/latest/download/trillium-cli-installer.sh | sh

Or download trillium-cli-aarch64-apple-darwin.tar.xz directly (verify it against sha256.sum), or — on any platform — cargo binstall trillium-cli.

Or compile from source with cargo:

cargo install trillium-cli

This installs a binary named trillium. Run trillium --help, or trillium <command> --help, for the full option list — these guide pages cover the common cases and call out the surface that isn't immediately obvious from --help.

With cargo install, each subcommand is gated behind a Cargo feature and the TLS backend is selectable, so you can build a smaller binary with only what you need (and the non-default gateway, dev-server, and grpc subcommands are opt-in). See Installing for the prebuilt-binary details, the feature matrix, and building from source.

Environment variables

Most listening and connection options also read from environment variables — HOST, PORT, CERT, KEY, FORWARD, UPSTREAM — so flags compose well with .env files and process managers. Each subcommand page lists the specific env vars it honors.

License

Licensed under either of MIT or Apache-2.0 at your option.