renovate Bot
9371259aed
chore(deps): update github actions
Rust CI / cargo fmt (pull_request) Successful in 16s
Rust CI / cargo clippy (pull_request) Successful in 41s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (pull_request) Successful in 39s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (pull_request) Successful in 1m25s
Rust CI / cargo check (x86_64-unknown-linux-musl) (pull_request) Successful in 40s
Rust CI / cargo doc (pull_request) Successful in 38s
Rust CI / cargo test (x86_64-unknown-linux-musl) (pull_request) Successful in 1m31s
Proto Fuzz Smoke / cargo fuzz smoke (pull_request) Successful in 1m28s
Supply chain / cargo-deny advisories (pull_request) Successful in 9s
Supply chain / cargo-deny bans licenses sources (pull_request) Successful in 9s
Supply chain / actionlint (pull_request) Successful in 3s
Netem Interop / netem interop (pull_request) Successful in 3m16s
2026-09-15 09:07:43 +00:00
Nils Andreas Svee
196512068b
Merge branch 'docs/audit-corrections'
Rust CI / cargo fmt (push) Successful in 18s
Rust CI / cargo clippy (push) Successful in 43s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Successful in 41s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Successful in 1m29s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Successful in 38s
Rust CI / cargo doc (push) Successful in 32s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Successful in 1m34s
Supply chain / cargo-deny advisories (push) Successful in 9s
Supply chain / cargo-deny bans licenses sources (push) Successful in 6s
Proto Fuzz Smoke / cargo fuzz smoke (push) Successful in 1m35s
Netem Interop / netem interop (push) Successful in 1m12s
Supply chain / actionlint (push) Successful in 4s
2026-09-15 13:20:25 +07:00
Nils Andreas Svee
e861de5247
fix(client): invalidate TX correlation after send failures
2026-09-15 13:03:36 +07:00
Nils Andreas Svee
f650b6220a
Merge branch 'test/doctest-ci'
Rust CI / cargo fmt (push) Successful in 15s
Rust CI / cargo clippy (push) Successful in 37s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Successful in 31s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Successful in 1m17s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Successful in 40s
Rust CI / cargo doc (push) Successful in 33s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Successful in 1m30s
Proto Fuzz Smoke / cargo fuzz smoke (push) Successful in 1m30s
Supply chain / cargo-deny advisories (push) Successful in 6s
Supply chain / cargo-deny bans licenses sources (push) Successful in 9s
Netem Interop / netem interop (push) Successful in 1m16s
Supply chain / actionlint (push) Successful in 3s
2026-09-15 12:51:01 +07:00
Nils Andreas Svee
865c166828
Merge branch 'refactor/remove-irttd-alias'
Rust CI / cargo fmt (push) Successful in 19s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Successful in 41s
Rust CI / cargo clippy (push) Successful in 42s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Successful in 1m28s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Successful in 41s
Rust CI / cargo doc (push) Successful in 21s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Successful in 1m31s
Proto Fuzz Smoke / cargo fuzz smoke (push) Successful in 1m31s
Netem Interop / netem interop (push) Successful in 1m14s
Supply chain / cargo-deny advisories (push) Successful in 6s
Supply chain / cargo-deny bans licenses sources (push) Successful in 9s
Supply chain / actionlint (push) Successful in 3s
2026-09-15 12:50:25 +07:00
Nils Andreas Svee
4864357486
refactor(app): remove undocumented irttd applet alias
2026-09-15 12:32:34 +07:00
Nils Andreas Svee
188d6e5354
docs(client): clarify terminal open replies
2026-09-15 12:31:45 +07:00
Nils Andreas Svee
2882beb2c9
docs(client): clarify TX timestamp correlation
2026-09-15 12:31:26 +07:00
Nils Andreas Svee
ed805e854f
docs(server): document DSCP-safe listener pairing
2026-09-15 12:31:10 +07:00
Nils Andreas Svee
f2e9c72b22
ci: run workspace doctests
2026-09-15 12:29:03 +07:00
Nils Andreas Svee
4563816873
docs(tui): advise on memory usage for finite-duration runs
Rust CI / cargo fmt (push) Successful in 17s
Rust CI / cargo clippy (push) Successful in 36s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Successful in 35s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Successful in 1m27s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Successful in 42s
Rust CI / cargo doc (push) Successful in 25s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Successful in 1m29s
Proto Fuzz Smoke / cargo fuzz smoke (push) Successful in 1m29s
Supply chain / cargo-deny advisories (push) Successful in 8s
Netem Interop / netem interop (push) Successful in 1m22s
Supply chain / cargo-deny bans licenses sources (push) Successful in 6s
Supply chain / actionlint (push) Successful in 4s
2026-09-14 15:33:57 +07:00
Nils Andreas Svee
70a2998f8c
docs(server): update --bind default bind reference
2026-09-14 15:33:57 +07:00
Nils Andreas Svee
4ddefb2101
docs(server): document all IRTT_SERVER_ environment variables
2026-09-14 15:33:57 +07:00
Nils Andreas Svee
04291a0b7b
feat(server): allow IRTT_SERVER_NO_DSCP to set --no-dscp flag
2026-09-14 15:33:57 +07:00
Nils Andreas Svee
c426884fd1
fix(client): prevent stagger gate from accumulating wakeup latency
2026-09-14 15:33:56 +07:00
Nils Andreas Svee
b9c2d024d9
chore(release): irtt-client 0.5.1, irtt-rs 0.7.0
...
Rust CI / cargo fmt (push) Successful in 40s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Successful in 1m3s
Rust CI / cargo clippy (push) Successful in 1m3s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Successful in 1m48s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Successful in 1m2s
Rust CI / cargo doc (push) Successful in 38s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Successful in 1m51s
Proto Fuzz Smoke / cargo fuzz smoke (push) Successful in 1m45s
Supply chain / cargo-deny advisories (push) Successful in 14s
Supply chain / cargo-deny bans licenses sources (push) Successful in 11s
Netem Interop / netem interop (push) Successful in 1m36s
Supply chain / actionlint (push) Successful in 7s
Semver / cargo-semver-checks (push) Successful in 1m31s
Publish irtt-server image / publish (push) Successful in 3m9s
irtt-client exposes a synchronous wait for managed target-set updates and keeps its packaged test dependency resolvable from crates.io. irtt-rs adds stdin-managed desired target sets and per-target HMAC configuration.
irtt-client/v0.5.1
irtt-rs/v0.7.0
2026-09-01 12:55:44 +07:00
Nils Andreas Svee
7ee7474605
fix(ci): use GNU target for fuzzing
Rust CI / cargo fmt (push) Successful in 41s
Rust CI / cargo clippy (push) Successful in 1m1s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Successful in 1m1s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Successful in 1m44s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Successful in 59s
Rust CI / cargo doc (push) Successful in 47s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Successful in 1m50s
Proto Fuzz Smoke / cargo fuzz smoke (push) Successful in 1m41s
Supply chain / cargo-deny advisories (push) Successful in 15s
Netem Interop / netem interop (push) Successful in 1m31s
Supply chain / cargo-deny bans licenses sources (push) Successful in 11s
Supply chain / actionlint (push) Successful in 7s
2026-09-01 12:48:01 +07:00
Nils Andreas Svee
c18903b097
ci: download Gitea tool binaries
Rust CI / cargo fmt (push) Successful in 42s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Successful in 1m3s
Rust CI / cargo clippy (push) Successful in 1m4s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Successful in 1m47s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Successful in 51s
Rust CI / cargo doc (push) Successful in 44s
Proto Fuzz Smoke / cargo fuzz smoke (push) Failing after 41s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Successful in 1m43s
Supply chain / cargo-deny advisories (push) Successful in 14s
Supply chain / cargo-deny bans licenses sources (push) Successful in 11s
Netem Interop / netem interop (push) Successful in 1m29s
Supply chain / actionlint (push) Successful in 7s
2026-09-01 12:27:45 +07:00
Nils Andreas Svee
b397916ec6
fix(ci): run cargo-deny directly on Gitea
Rust CI / cargo fmt (push) Successful in 34s
Rust CI / cargo clippy (push) Successful in 54s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Successful in 53s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Successful in 1m42s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Successful in 51s
Rust CI / cargo doc (push) Successful in 43s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Successful in 1m55s
Netem Interop / netem interop (push) Successful in 1m32s
Proto Fuzz Smoke / cargo fuzz smoke (push) Successful in 2m5s
Supply chain / actionlint (push) Failing after 14s
Supply chain / cargo-deny advisories (push) Successful in 2m34s
Supply chain / cargo-deny bans licenses sources (push) Successful in 2m25s
2026-09-01 12:06:59 +07:00
Nils Andreas Svee
9f6ef340f9
docs(managed): fix broken intra-doc link for BlockingManagedClient
...
Rust CI / cargo fmt (push) Successful in 35s
Rust CI / cargo clippy (push) Successful in 55s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Successful in 50s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Successful in 1m43s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Successful in 59s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Successful in 1m49s
Rust CI / cargo doc (push) Successful in 47s
Proto Fuzz Smoke / cargo fuzz smoke (push) Successful in 2m5s
Supply chain / cargo-deny advisories (push) Canceled after 0s
Supply chain / cargo-deny bans licenses sources (push) Canceled after 0s
Supply chain / actionlint (push) Canceled after 0s
Netem Interop / netem interop (push) Successful in 1m33s
Update the link path to use a crate-relative reference, ensuring the documentation resolves correctly for users.
2026-09-01 12:02:01 +07:00
Nils Andreas Svee
3a29b4efb2
ci: make Gitea primary Linux forge
Rust CI / cargo fmt (push) Successful in 45s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Successful in 1m4s
Rust CI / cargo clippy (push) Successful in 1m6s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Successful in 1m48s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Successful in 50s
Rust CI / cargo doc (push) Failing after 48s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Successful in 1m49s
Proto Fuzz Smoke / cargo fuzz smoke (push) Successful in 2m3s
Supply chain / cargo-deny advisories (push) Failing after 29s
Netem Interop / netem interop (push) Successful in 1m33s
Supply chain / cargo-deny bans licenses sources (push) Failing after 27s
Supply chain / actionlint (push) Failing after 14s
2026-09-01 11:18:51 +07:00
Lochnair
a2f542bb97
Merge pull request 'feat(app): add stdin-managed targets and per-target HMAC' ( #136 ) from feature/targets-stdin into main
...
Reviewed-on: #136
2026-09-01 04:06:19 +00:00
Nils Andreas Svee
5dd478e81a
fix(app): bound dynamic stream accounting
2026-09-01 10:36:05 +07:00
Nils Andreas Svee
1ba4f61072
feat(app): add stdin-managed client target sets
2026-09-01 01:50:56 +07:00
Nils Andreas Svee
31fd76f78d
feat(client): await managed updates from blocking callers
2026-09-01 01:49:59 +07:00
Nils Andreas Svee
344533f8b6
feat(app): parse target-level HMAC authentication
2026-09-01 01:49:48 +07:00
renovate Bot
e8b3f64292
Merge pull request 'chore(deps): update github actions to v0.6.3' ( #135 ) from renovate/github-actions into main
2026-08-30 22:07:41 +00:00
renovate Bot
c98452aa2c
chore(deps): update github actions to v0.6.3
2026-08-30 22:07:36 +00:00
renovate Bot
807d8f2846
chore(deps): maintain cargo lockfile
2026-08-29 14:40:37 +00:00
renovate Bot
0cc6b1ea80
chore(deps): update github actions
2026-08-29 14:40:09 +00:00
renovate Bot
0ccca9b0ab
chore(deps): update rust docker tag to v1.98
2026-08-29 14:39:18 +00:00
renovate Bot
df0d69e35d
fix(deps): update rust crate libfuzzer-sys to 0.4.13
2026-08-29 14:38:56 +00:00
renovate Bot
9ab1b78637
chore(deps): pin dependencies
2026-08-29 14:36:38 +00:00
Nils Andreas Svee
45351e0ba1
chore(release): irtt-server 0.5.2, irtt-rs 0.6.2
...
Publish irtt-server image / publish (push) Successful in 1m17s
irtt-server's hex-pattern chunking moves to the stable as_chunks API
with no behavior change. irtt-rs picks up IRTT_SERVER_* environment
variable configuration, SIGTERM handling via ctrlc's termination
feature, and the Dockerfile/Gitea Actions pipeline that publishes its
server image to Gitea and GHCR.
irtt-server/v0.5.2
irtt-rs/v0.6.2
2026-08-26 17:03:47 +07:00
Nils Andreas Svee
e2b70ac50a
ci: add Dockerfile and Gitea Actions workflow for irtt-server
...
Introduce a multi-platform build pipeline to automate the publication of a minimal, statically linked irtt-server image to Gitea and GHCR.
2026-08-25 00:50:04 +07:00
Nils Andreas Svee
95037f7fa0
fix(clippy): use as_chunks instead of chunks_exact
2026-08-25 00:16:21 +07:00
Nils Andreas Svee
614579b8b6
build(app): enable termination feature for ctrlc dependency
...
GitHub Actions Security / actionlint (push) Failing after 36s
Rust CI / cargo fmt (push) Successful in 40s
Rust CI / cargo clippy (push) Failing after 45s
Rust CI / cargo doc (push) Successful in 45s
Netem Interop / netem interop (push) Failing after 45s
Supply chain / cargo-deny advisories (push) Failing after 9s
GitHub Actions Security / zizmor (push) Failing after 3m52s
Proto Fuzz Smoke / cargo fuzz smoke (push) Successful in 1m57s
Supply chain / cargo-deny bans licenses sources (push) Failing after 8s
Supply chain / actionlint (push) Failing after 38s
Clippy SARIF / Clippy SARIF (push) Failing after 5m13s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Canceled after 0s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Canceled after 0s
Rust CI / cargo check (aarch64-unknown-linux-gnu) (push) Canceled after 0s
Rust CI / cargo test (aarch64-unknown-linux-gnu) (push) Canceled after 0s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Canceled after 0s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Canceled after 0s
Rust CI / cargo check (aarch64-unknown-linux-musl) (push) Canceled after 0s
Rust CI / cargo test (aarch64-unknown-linux-musl) (push) Canceled after 0s
Enable the termination feature to allow the application to handle SIGTERM signals gracefully, ensuring proper cleanup during shutdown.
2026-08-24 16:13:23 +07:00
Lochnair
46d7fdfe30
Merge pull request 'feat(app): add environment variable support for server configuration' ( #129 ) from feature/clap-env into main
...
GitHub Actions Security / actionlint (push) Failing after 46s
Rust CI / cargo fmt (push) Successful in 42s
Rust CI / cargo clippy (push) Failing after 45s
Rust CI / cargo doc (push) Successful in 46s
Netem Interop / netem interop (push) Failing after 49s
GitHub Actions Security / zizmor (push) Failing after 3m37s
Supply chain / cargo-deny advisories (push) Failing after 8s
Proto Fuzz Smoke / cargo fuzz smoke (push) Successful in 2m5s
Supply chain / cargo-deny bans licenses sources (push) Failing after 8s
Supply chain / actionlint (push) Failing after 46s
Clippy SARIF / Clippy SARIF (push) Failing after 5m22s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (push) Canceled after 0s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (push) Canceled after 0s
Rust CI / cargo check (aarch64-unknown-linux-gnu) (push) Canceled after 0s
Rust CI / cargo test (aarch64-unknown-linux-gnu) (push) Canceled after 0s
Rust CI / cargo check (x86_64-unknown-linux-musl) (push) Canceled after 0s
Rust CI / cargo test (x86_64-unknown-linux-musl) (push) Canceled after 0s
Rust CI / cargo check (aarch64-unknown-linux-musl) (push) Canceled after 0s
Rust CI / cargo test (aarch64-unknown-linux-musl) (push) Canceled after 0s
Reviewed-on: Lochnair/irtt-rs#129
2026-08-24 08:56:47 +00:00
Nils Andreas Svee
8602f73728
feat(app): add environment variable support for server configuration
...
GitHub Actions Security / actionlint (pull_request) Failing after 46s
Rust CI / cargo fmt (pull_request) Successful in 36s
Rust CI / cargo clippy (pull_request) Failing after 41s
Rust CI / cargo doc (pull_request) Successful in 46s
Netem Interop / netem interop (pull_request) Failing after 40s
Supply chain / cargo-deny advisories (pull_request) Failing after 8s
Supply chain / cargo-deny bans licenses sources (pull_request) Failing after 8s
GitHub Actions Security / zizmor (pull_request) Failing after 3m46s
Proto Fuzz Smoke / cargo fuzz smoke (pull_request) Successful in 2m0s
Supply chain / actionlint (pull_request) Failing after 45s
Rust CI / cargo check (x86_64-unknown-linux-gnu) (pull_request) Canceled after 0s
Rust CI / cargo test (x86_64-unknown-linux-gnu) (pull_request) Canceled after 0s
Rust CI / cargo check (aarch64-unknown-linux-gnu) (pull_request) Canceled after 0s
Rust CI / cargo test (aarch64-unknown-linux-gnu) (pull_request) Canceled after 0s
Rust CI / cargo check (x86_64-unknown-linux-musl) (pull_request) Canceled after 0s
Rust CI / cargo test (x86_64-unknown-linux-musl) (pull_request) Canceled after 0s
Rust CI / cargo check (aarch64-unknown-linux-musl) (pull_request) Canceled after 0s
Rust CI / cargo test (aarch64-unknown-linux-musl) (pull_request) Canceled after 0s
Release / plan (pull_request) Canceled after 0s
Release / build-local-artifacts (${{ join(matrix.targets, ', ') }}) (pull_request) Canceled after 0s
Release / build-global-artifacts (pull_request) Canceled after 0s
Release / host (pull_request) Canceled after 0s
Release / announce (pull_request) Canceled after 0s
Enable configuration via IRTT_SERVER_* environment variables to simplify deployments in containerized or orchestrated environments. This adds the clap "env" feature and includes thread-safe tests to verify variable precedence.
2026-08-24 15:47:09 +07:00
Nils Andreas Svee
5d07853893
chore(release): irtt-server 0.5.1, irtt-rs 0.6.1
...
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-rs/v0.6.1
irtt-server/v0.5.1
2026-08-20 22:39:40 +07:00
Nils Andreas Svee
ccb31a59e7
Merge pull request #128 from Lochnair/feat/docs-layout-and-server-defaults
...
Server bind defaults + documentation architecture cleanup
2026-08-20 22:29:02 +07:00
Nils Andreas Svee
56a2a653d0
docs(crates): give each published crate its own crates.io README and examples
...
Each published crate (irtt-rs, irtt-client, irtt-server, irtt-stats,
irtt-proto) now points crates.io at its own README instead of
inheriting the root project README via the workspace-wide readme
default, which is removed. Each crate README is a short landing page:
what the crate is, who should use it, which sibling crate to use
instead if this isn't the right abstraction level, and links to
docs.rs and the main repository.
Add real Cargo example targets teaching irtt-client's blocking/Tokio/
managed API tiers, a basic and a multi-listener irtt-server example,
and an irtt-stats example contrasting finite vs continuous retention.
irtt-proto intentionally has none. Update each crate's top-level
rustdoc to explain its API-tier choices and point at the examples, and
enable docs.rs rustdoc example scraping for irtt-client and
irtt-server (via doc-scrape-examples on each example target, needed
because the crate has dev-dependencies).
The client examples are caller-paced against next_send_deadline()
rather than sending on every loop iteration, bound their receive wait
by the next send/timeout deadline instead of awaiting indefinitely,
poll timeouts on a short fixed cadence, and surface send/receive/close
errors instead of discarding them via unwrap_or_default()/if-let-Ok --
so they demonstrate correct pacing and terminate/report cleanly rather
than racing the server, hanging on a lost reply, or silently dropping a
failed final close.
2026-08-20 22:17:53 +07:00
Nils Andreas Svee
1ec82d8c56
docs: turn the root README into a project landing page
...
Reduce the root README to project discovery and navigation: what
irtt-rs is, its relationship to upstream IRTT (including a factual
capability comparison checked against upstream v0.9.2), installation,
a short quick start, and links out to detailed documentation. Detailed
CLI behavior, output/measurement semantics, continuous-mode memory
guidance, and server bind/session/negotiation semantics move into new
manpage-shaped docs under docs/ (irtt-rs, irtt-client, irtt-tui,
irtt-server), rewritten as operational guidance rather than copied
verbatim from the old README sections they replace.
2026-08-20 22:17:25 +07:00
Nils Andreas Svee
e9e1ff4218
feat(server): give irtt-server sensible zero-argument defaults
...
With no --bind, the server now binds the wildcard IRTT port on both
address families ([::]:2112 then 0.0.0.0:2112) instead of requiring an
explicit address, on platforms where wildcard reply-source selection
is already supported. Any explicit --bind fully replaces the default
pair rather than adding to it; repeated explicit binds are unaffected.
If one of the two default listeners fails because its address family
has no local support on this host at all (IPv6 disabled on an
otherwise IPv4-capable host, for example), the server falls back to
serving just the surviving family instead of failing outright. Any
other failure reason -- the port already in use, permission denied, no
safe wildcard reply-source path -- is not a family-support problem and
is not silently worked around; startup fails as it would for an
explicit --bind. This distinction is made with the new
irtt_server::address_family_available, which actually binds the
wildcard address of the failed listener's family on an ephemeral port:
a bare socket can construct successfully even when every bind for that
family fails (Linux administratively disabling IPv6 per-interface
leaves AF_INET6 sockets constructible but every bind EADDRNOTAVAIL), so
only a real bind attempt is a reliable signal.
2026-08-20 22:17:07 +07:00
Nils Andreas Svee
2521959364
Merge pull request #127 from Lochnair/docs/release-readiness-audit-fixes
...
docs: implement release-readiness audit findings
2026-08-20 15:33:08 +07:00
Nils Andreas Svee
1754b77ea5
docs: scope kernel-timestamp claim to the Tokio server runtime
...
irtt_server::ServerCore::handle_datagram is a public API that
always passes kernel_rx_timestamp = None; only the crate-private
entry point the Tokio runtime (the irtt-server applet) uses
supplies one. Say so explicitly instead of implying every use of
this crate's server gets the preference.
2026-08-20 15:24:43 +07:00
Nils Andreas Svee
cab1fd1aab
docs: scope server kernel-timestamp claim to this crate's server
...
irtt-client can talk to any IRTT-compatible peer, not only this
repo's own irtt-server, and has no way to know what clock source
produced a peer-reported wall-clock endpoint. Restrict the
kernel-receive-timestamp-preference claim to when the peer is
this crate's own Linux irtt-server; state plainly that another
peer's reported value is used as-is otherwise.
2026-08-20 15:18:48 +07:00
Nils Andreas Svee
c9269ca0ee
docs: qualify RTT-unaffected claim to raw RTT only
...
adjusted_rtt_us/effective_rtt_us are derived in part from
server-reported processing time, which is computed from the same
server receive endpoint the client_to_server one-way-delay field
documents as kernel-preferred. Only raw RTT is guaranteed to stay
on userspace monotonic timing; say so precisely instead of
claiming RTT in general is unaffected.
2026-08-20 15:12:01 +07:00
Nils Andreas Svee
98e7231ede
fix(app): gate feature-specific formatting helpers
...
RUSTFLAGS="-D warnings" cargo check -p irtt-rs --no-default-features
--features client (or --features tui) warned on dead code: some
format.rs helpers are only called from the client applet, others
only from the TUI. Narrowly #[cfg(feature = "...")]-gate each to
the applet that actually uses it instead of allowing the warning
or introducing a new feature, and split the tests that exercised
both groups to match.
2026-08-20 14:57:02 +07:00
Nils Andreas Svee
a0b51032f2
docs: document update_targets() replacement semantics
...
ManagedClientHandle::update_targets() had a one-line rustdoc that
didn't say targets is a full desired-set replacement, that an
unchanged live target continues undisturbed, or that a changed
config or a terminal-generation resubmission starts a fresh
generation even for byte-identical config.
2026-08-20 14:56:56 +07:00