Commit Graph
446 Commits
Author SHA1 Message Date
Nils Andreas Svee d9846b7868 feat(managed): implement thread-safe cancellation token 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 3f7afd4f7a feat(error): introduce worker panic and subscription disconnection errors 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 3ba4f56221 feat(client): add run status and packet count helpers 2026-05-10 20:56:43 +07:00
Nils Andreas Svee c5941d6383 refactor(cli): restrict test utilities to test module and expand value escaping
Move internal test helpers to the test module to clean up the public API and add support for escaping common whitespace characters in output values.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee 49b48bdce2 perf(cli): use LineWriter for stdout to improve output responsiveness
Switch from BufWriter to LineWriter to ensure trace logs and events are flushed to the terminal immediately upon each line completion.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee be473d04ad docs(cli): add TODO for refining final drain duration logic
Document the need to derive the final drain period from client state rather than using a hardcoded guess.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee c65ba48e10 feat(cli): implement main execution loop and network I/O logic 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 510f307acc feat(cli): implement command-line argument parsing and event formatting 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 4b90187d1d chore(cli): add dependencies for CLI implementation 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 2715dcb5bd test(client): add regression tests for packet processing and RTT 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 5a9231505e refactor(probe): improve CompletedSet eviction logic using insertion order 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 0099ac799f fix(client): handle negative RTT and simplify sample generation 2026-05-10 20:56:43 +07:00
Nils Andreas Svee d212258707 feat(client): add specific warning kinds for dropped packets 2026-05-10 20:56:43 +07:00
Nils Andreas Svee b9fc4b9cee refactor(client): capture send timestamp before socket call
Record the send timestamp immediately before the socket operation to include local enqueue overhead in RTT measurements, providing more conservative latency data for consumers.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee 1cc0d60eac refactor(client): unify production and test timing logic
Extract internal methods that accept an optional timestamp to eliminate code duplication between primary client logic and test helpers.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee 4a35f5ba0f test(client): add regression tests for edge cases and correctness 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 9661ebc4a6 fix(client): allow partial one-way delay samples 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 548363ad05 fix(client): improve probe tracking and reply handling 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 7cbc30a3a2 refactor(client): dynamic receive buffer sizing based on negotiated parameters 2026-05-10 20:56:43 +07:00
Nils Andreas Svee cdf41f2a82 feat(client): add configuration validation and new error types 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 265618b97e refactor(client): use internal clock for timestamps and simplify probe signatures 2026-05-10 20:56:43 +07:00
Nils Andreas Svee abf4b8134c test(client): add comprehensive tests for Milestone 3 probing functionality 2026-05-10 20:56:43 +07:00
Nils Andreas Svee c373b957d5 feat(client): implement core echo probe sending and receiving logic 2026-05-10 20:56:43 +07:00
Nils Andreas Svee cebce832ff feat(client): define new event types and error variants for echo probes 2026-05-10 20:56:43 +07:00
Nils Andreas Svee df3edf9f1d feat(client): add configuration options for probe timing and budgets 2026-05-10 20:56:43 +07:00
Nils Andreas Svee b0dc1fb70c feat(client): implement PendingMap and CompletedSet for probe tracking 2026-05-10 20:56:43 +07:00
Nils Andreas Svee e33b9b3f3f refactor(client): rename ClientState to ClientPhase and introduce ActiveSession 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 30675ff85f fix(client): Improve socket error handling and remove redundant validation 2026-05-10 20:56:43 +07:00
Nils Andreas Svee befe431304 feat(client): Reject empty open_timeouts configuration with dedicated error 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 04ebaf829a refactor(proto): Remove unused protocol flags and helper functions 2026-05-10 20:56:43 +07:00
Nils Andreas Svee a5e8c80ecb build(deps): Upgrade thiserror to version 2 2026-05-10 20:56:43 +07:00
Nils Andreas Svee f1f5dfe541 test(client): Verify socket read timeout restoration after open() 2026-05-10 20:56:43 +07:00
Nils Andreas Svee f095eb5930 refactor(client): Introduce and apply test helper for timeout servers 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 80bdb7d84a test(client): Add open() state validation tests 2026-05-10 20:56:43 +07:00
Nils Andreas Svee f8505b01f3 feat(client): Validate client state and restore socket timeout on open() 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 1266497119 feat(client): Add client session state error variants 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 14bc506b51 feat(client): Normalize IPv6 addresses without port in brackets 2026-05-10 20:56:43 +07:00
Nils Andreas Svee d26b049b06 feat(irtt-client): introduce core client connection logic 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 0a237462e9 refactor(irtt-client): update lib.rs for modularized client 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 7429beef79 refactor(irtt-client): modularize client components 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 6772a3def0 build(deps): upgrade thiserror to version 2 2026-05-10 20:56:43 +07:00
Nils Andreas Svee eb5e9dc9bc feat(client): Implement initial IRTT client session management 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 7769c39dbe build(client): Add core dependencies for irtt-client 2026-05-10 20:56:43 +07:00
Nils Andreas Svee c512bde36c style(gitignore): Restrict target directory ignore scope 2026-05-10 20:56:43 +07:00
Nils Andreas Svee 34dd2ee5d2 refactor(proto): Remove Clock::None and default to Clock::Both
Simplify clock parameter negotiation by rejecting the ambiguous 'None' value.
2026-05-10 20:56:43 +07:00
Nils Andreas Svee cf74887bdf feat(project): Establish initial IRTT workspace and protocol definitions 2026-05-10 20:56:28 +07:00