irtt-server gains address_family_available() as a public helper, and irtt-rs picks up the server zero-argument defaults and single-family fallback that depend on it.
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 deterministicServerCore, one sequential receive/reply loop.ServerSet— supervises one or moreServers 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.