Files
irtt-rs/docs/irtt-rs.md
T
Nils Andreas Svee 97bd903769
Rust CI / cargo fmt (push) Successful in 17s
Rust CI / cargo clippy (push) Successful in 33s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Successful in 23s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Successful in 33s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Successful in 1m7s
Rust CI / cargo doc (push) Successful in 27s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Successful in 1m21s
Fuzz Smoke / cargo fuzz smoke (push) Successful in 1m40s
Netem Interop / netem interop (push) Successful in 1m18s
Supply chain / cargo-deny advisories (push) Successful in 18s
Supply chain / actionlint (push) Failing after 4s
Supply chain / cargo-deny bans licenses sources (push) Successful in 17s
Build binaries / Build (arm-musleabi) (push) Successful in 4m58s
Build binaries / Build (aarch64-musl) (push) Successful in 5m6s
Build binaries / Build (arm-musleabihf) (push) Successful in 4m38s
Build binaries / Build (armv7-musleabi) (push) Successful in 4m33s
Build binaries / Build (armv7-musleabihf) (push) Successful in 4m57s
Build binaries / Build (i686-musl) (push) Successful in 5m1s
Build binaries / Build (mips64-muslabi64) (push) Successful in 4m35s
Build binaries / Build (mips-musl) (push) Successful in 4m42s
Build binaries / Build (mips64el-muslabi64) (push) Successful in 4m54s
Build binaries / Build (mipsel-musl) (push) Successful in 4m54s
Build binaries / Build (riscv64gc-musl) (push) Successful in 4m36s
Build binaries / Build (x86_64-musl) (push) Successful in 4m40s
chore: improve documentation and README
2026-10-28 12:17:48 +07:00

2.3 KiB

irtt-rs

Name

irtt-rs - IRTT-compatible multi-applet dispatcher

Synopsis

irtt-rs client [OPTIONS] [[LABEL=]TARGET]...

irtt-rs tui [OPTIONS] [LABEL=]TARGET...

irtt-rs server [OPTIONS]

Description

irtt-rs lets you run the client, TUI, or server from one binary. You choose the applet with a subcommand, or by the name you invoke or copy the binary as. This is useful on a router where you want a single binary to deploy. The applets behave the same as irtt-client(1), irtt-tui(1), and irtt-server(1).

For example, irtt-rs client ... does the same thing as running irtt-client ... directly. See the individual manuals for target syntax, options, output, and exit behavior.

Applet binary names

The build also produces dedicated irtt-client, irtt-tui, and irtt-server binaries. These always run their own applet, even if you copy or invoke them under a different name. They do not use argv0 to choose an applet.

The irtt-rs dispatcher checks argv0 first. If you invoke it through a symlink or copy named irtt-client, irtt-tui, or irtt-server, it runs that applet without a subcommand.

Other names starting with irtt-, except irtt-rs itself, are rejected before subcommands are parsed. So irtt-custom server fails with an unknown applet error. If the name is irtt-rs, or doesn't start with irtt-, the dispatcher parses the usual client/tui/server subcommands.

Feature-dependent applet availability

Each applet has a Cargo feature on the irtt-rs package: client, tui, server. All three are enabled by default. If you disable one, the build still produces irtt-rs, but you cannot run that applet. Trying it through either a subcommand or a binary name tells you which feature to rebuild with. Use irtt-rs --help to see which applets your build includes.

cargo install irtt-rs --locked --no-default-features --features client,stats

Use --features client to omit statistics. The default build includes the stats feature, and tui always enables it.

Relationship to irtt-client, irtt-tui, irtt-server

The irtt-rs dispatcher handles packaging and applet selection. For how to run probes, use the dashboard, or serve requests, see irtt-client(1), irtt-tui(1), and irtt-server(1).

See also

irtt-client(1), irtt-tui(1), irtt-server(1).