-
Notifications
You must be signed in to change notification settings - Fork 990
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor(quic): rewrite quic using quinn #3454
Conversation
This one is fresh, uses all features from master but with less code. I tried to update #2801 but it turned out it was easier to rewrite it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left comments on close/poll_close. I am not sure how to resolve them.
fix(quic/stream): return error on read
fix(quic/connection): await connection.closed
This pull request has merge conflicts. Could you please resolve them @kpp? 🙏 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @kpp for all the work on this pull request.
I will go ahead and merge here 🎉.
Most prominently, includes libp2p/rust-libp2p#3454.
With libp2p/rust-libp2p#3454 merged we can now test the new rust-libp2p QUIC implementation based on upstream quinn directly from rust-libp2p `master`. This commit does the following in libp2p/test-plans: 1. Remove the `perf/impl/rust-libp2p-quinn` implementation. 2. Introduce the `perf/impl/rust-libp2p/master` version of the rust-libp2p implementation. We can promote the latter to a proper version on the next rust-libp2p release.
With libp2p/rust-libp2p#3454 merged we can now test the new rust-libp2p QUIC implementation based on upstream quinn directly from rust-libp2p `master`. This commit does the following in libp2p/test-plans: 1. Remove the `perf/impl/rust-libp2p-quinn` implementation. 2. Introduce the `perf/impl/rust-libp2p/master` version of the rust-libp2p implementation. We can promote the latter to a proper version on the next rust-libp2p release.
Rewrite quic using quinn instead of quinn-proto. libp2p-quic::endpoint::Driver is eliminated (and that hard quinn-proto machinery). Also: - ECN bits are handled - Support Generic Send Offload (GSO) Pull-Request: #3454.
Description
Rewrite quic using quinn instead of quinn-proto. libp2p-quic::endpoint::Driver is eliminated (and that hard quinn-proto machinery). Also:
Notes
This PR preserves the original API and naming.
Testing hole punching:
Links to any relevant issues
Open Questions
Change checklist
I have added tests that prove my fix is effective or that my feature worksTODOs
Get rid of BoxedFuture in connection