hyperium / hyperium/h3

WebTransportSession shouldn't take ownership of Connection<C, B>

Open
#327 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
890
Forks
136
Avg merge
14d 20h
Merged PRs (30d)
2

Description

I believe the spec allows sharing the same connection for multiple sessions and multiple requests as well, since WebTransportSession is wrapping it Mutex anyway to store it, making the argument itself as Arc<Mutex<Connection<C, B>>> might be helpful.

Preferably async Mutex, as we have to use

async fn Connection::accept(&mut self)

for incoming requests

#289 and #186 are related

making the connection cloneable and keeping the mutability internally would allow sharing same connections for multiple sessions is probably better than having Arc<Mutex<Connection<C, B>>> everywhere

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the WebTransportSession and Connection APIs described in this issue, then review related issues #289 and #186. Determine how shared connections and incoming requests should be represented without transferring ownership, and define completion around a decided, tested API design that supports multiple sessions and requests.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend-api-design, networking
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.