Skip to content

Conversation

@rklaehn
Copy link
Contributor

@rklaehn rklaehn commented Nov 27, 2025

Description

Adds user defined transports.

Transports have to impl a dynable trait, currently named UserTransport. Implementing this requires implementing another dynable trait UserSender. Creating a transport requires implementing yet another dynable trait UserTransportConfig (possibly to be renamed to UserTransportFactory?, it's not a config).

An user addr is just an opaque blob with an u64 tranport id. Small blobs will be inlined, but that is an implementation detail.

Breaking Changes

Notes & open questions

Open questions:

  • should all transports be user transports? Currently we have ip and relay as special cases, which complicates the code a lot. Maybe this is needed, but maybe not.
  • the whole mechanism to figure out the local addr needs to be extended to user addrs. I did a bit in this direction, but it is not done yet.

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 27, 2025

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

Last updated: 2025-11-28T12:05:11Z

@rklaehn rklaehn force-pushed the feat-user-transport branch from c792b95 to 5eea792 Compare November 27, 2025 14:53
@rklaehn rklaehn changed the base branch from feat-multipath to feat-bind-interfaces November 27, 2025 14:54
@n0bot n0bot bot added this to iroh Nov 27, 2025
@github-project-automation github-project-automation bot moved this to 🏗 In progress in iroh Nov 27, 2025
@rklaehn rklaehn force-pushed the feat-user-transport branch from a7a4e2c to e6b3aab Compare November 27, 2025 15:09
@rklaehn rklaehn changed the title Feat user transport feat: Implement user transports Nov 27, 2025
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