Skip to content
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

Quic transport support #961

Open
Menduist opened this issue Oct 12, 2023 · 0 comments
Open

Quic transport support #961

Menduist opened this issue Oct 12, 2023 · 0 comments
Labels
enhancement New feature or request transports

Comments

@Menduist
Copy link
Contributor

The main blocker here is the TLS layer. We need a TLS library that supports QUIC, which requires, among other things TLS 1.3

BearSSL still doesn't support TLS 1.3
MbedTLS (that we use for webrtc) will soon support TLS 1.3, but the Quic API isn't on their roadmap (follow progress here Mbed-TLS/mbedtls#4731)
OpenSSL apparently plans not to expose a QUIC TLS layer, but fully reimplement QUIC for some reason

So we either need to wait for one of those to support Quic, or wrap a new TLS library for Quic
We already have nim-quic which was never used in production, but works in tests.
It wraps ngtcp2 (you'll also find a list of supported TLS librairies in the README of this repo)

I originally planned to implement Quic without encryption in the meantime, but never finished it: #725
Quic implementation in libp2p is similar to WebRTC, since Quic provides its own encryption & muxing.

So, to-do:

libp2p specs: https://github.com/libp2p/specs/tree/master/quic

@Menduist Menduist added enhancement New feature or request transports labels Oct 12, 2023
@Menduist Menduist mentioned this issue Oct 12, 2023
21 tasks
@kaiserd kaiserd moved this to new in nim-libp2p May 2, 2024
@kaiserd kaiserd moved this from new to backlog in nim-libp2p May 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request transports
Projects
Status: backlog
Development

No branches or pull requests

1 participant