Skip to content

Conversation

@Frando
Copy link
Member

@Frando Frando commented Nov 23, 2025

Description

This adds qlog support to iroh. Depends on n0-computer/quinn#181.

Test it out:

IROH_TEST_QLOG=1 cargo test -p iroh --lib --features qlog -- endpoint_connect_close

You'll find two files in iroh/qlog. Go to https://qvis.quictools.info/ and import both files (you can select multiple). Then click on sequence and select client and server on left and right.

Breaking Changes

Notes & open questions

Change checklist

  • Self-review.
  • Documentation updates following the style guide, if relevant.
  • Tests if relevant.
  • All breaking changes documented.
    • List all breaking changes in the above "Breaking Changes" section.
    • Open an issue or PR on any number0 repos that are affected by this breaking change. Give guidance on how the updates should be handled or do the actual updates themselves. The major ones are:

@github-actions
Copy link

github-actions bot commented Nov 23, 2025

Documentation for this PR has been generated and is available at: https://n0-computer.github.io/iroh/pr/3698/docs/iroh/

Last updated: 2025-11-25T10:16:16Z

@github-actions
Copy link

github-actions bot commented Nov 23, 2025

Netsim report & logs for this PR have been generated and is available at: LOGS
This report will remain available for 3 days.

Last updated for commit: b79ae98

@n0bot n0bot bot added this to iroh Nov 23, 2025
@github-project-automation github-project-automation bot moved this to 🏗 In progress in iroh Nov 23, 2025
@Frando Frando changed the title wip: initial qlog support in iroh feat: qlog support in iroh Nov 25, 2025
Copy link
Contributor

@flub flub left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally lgtm. Would be cool to see if testdir works well with this, but not required.

Needs to wait till the stuff is merged in Quinn.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes here should be removed by the time things are ready to be merged.

impl QlogFileGroup {
/// Creates a new [`QlogFileGroup] that is only enabled if feature flags and environment variables match.
///
/// The qlog files will be written to `CARGO_MANIFEST_DIR/qlog`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Time to advertise https://crates.io/crates/testdir again. :)

Would be cool if we can use that by default.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also makes me notice "[`QlogFileGroup]" has messed up markup


/// Creates a [`TransportConfig`] that emits qlog files with a server vantage point, if enabled.
///
/// If the "qlog" feature is enabled, and the environment varialbe IROH_TEST_QLOG is set to "1",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 is a very specific value. Why not just "not empty"?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🏗 In progress

Development

Successfully merging this pull request may close these issues.

4 participants