Files
irtt-rs/crates/irtt-server
Nils Andreas Svee efa1313e95
Rust CI / cargo fmt (push) Successful in 17s
Rust CI / cargo clippy (push) Successful in 32s
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 1m6s
Rust CI / cargo doc (push) Successful in 26s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Successful in 1m18s
Fuzz Smoke / cargo fuzz smoke (push) Successful in 1m41s
Netem Interop / netem interop (push) Successful in 1m22s
Supply chain / cargo-deny advisories (push) Successful in 17s
Supply chain / cargo-deny bans licenses sources (push) Successful in 15s
Supply chain / actionlint (push) Failing after 4s
Build binaries / Build (arm-musleabi) (push) Successful in 4m46s
Build binaries / Build (aarch64-musl) (push) Successful in 4m54s
Semver / cargo-semver-checks (push) Successful in 48s
Publish irtt-server image / publish (push) Successful in 1m5s
Build binaries / Build (arm-musleabihf) (push) Successful in 3m54s
Build binaries / Build (armv7-musleabi) (push) Successful in 4m1s
Build binaries / Build (armv7-musleabihf) (push) Successful in 4m1s
Build binaries / Build (i686-musl) (push) Successful in 3m57s
Build binaries / Build (mips-musl) (push) Successful in 3m47s
Build binaries / Build (mips64-muslabi64) (push) Successful in 3m44s
Build binaries / Build (mipsel-musl) (push) Successful in 3m52s
Build binaries / Build (mips64el-muslabi64) (push) Successful in 4m5s
Build binaries / Build (riscv64gc-musl) (push) Successful in 4m17s
Build binaries / Build (x86_64-musl) (push) Successful in 4m20s
chore(release): prepare client 0.7.0, stats 0.6.0 and app 0.10.0
2026-10-27 11:30:08 +07:00
..

irtt-server

Reusable, Tokio-native library for running an IRTT-compatible UDP server: open negotiation, the bounded session table, echo processing, per-session rate limiting, idle and max-duration expiry, and reply construction.

Looking for the CLI?

If you just want to run a server from the command line, use the irtt-rs application package instead, which installs the irtt-server binary. This crate is the library that binary is built on.

Structure

  • Server — the one-listener primitive: one UDP socket, one deterministic ServerCore, one sequential receive/reply loop.
  • ServerSet — supervises one or more Servers as a single service: binds them all or none, runs each in its own task, and fans one shutdown out to all of them.

Unlike irtt-client, Tokio is not optional here — this crate is intentionally Tokio-native, with no blocking or alternate-runtime variant.

A wildcard listener (0.0.0.0 / [::]) recovers each request's local destination and replies from it, so a client on a second local address is answered from the address it actually contacted. That path is implemented for Linux, macOS, and FreeBSD; a wildcard bind is refused at construction on other targets rather than served incorrectly. Explicit-address listeners are unaffected everywhere.

See examples/ in the repository for runnable examples.

Documentation

Full API documentation is on docs.rs/irtt-server.

Project

Part of irtt-rs, an independent Rust implementation of an IRTT-compatible protocol stack.