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

webtransport-go >v0.7 breaks compatibility with earlier versions #2789

Open
MarcoPolo opened this issue May 13, 2024 · 1 comment
Open

webtransport-go >v0.7 breaks compatibility with earlier versions #2789

MarcoPolo opened this issue May 13, 2024 · 1 comment

Comments

@MarcoPolo
Copy link
Collaborator

webtransport-go v0.7 introduced this breaking change:

Before v0.7.0, the server (incorrectly) didn't advertise support the Extended CONNECT extension. With quic-go/quic-go#4341, it now does. The client now checks for Extended CONNECT support, and aborts the handshake if the server doesn't support it. This means that v0.7.0 clients are now incompatible with pre-v0.7.0 servers.

from https://github.com/quic-go/webtransport-go/releases.

This means that by updating webtranport-go we will break compatibility with earlier versions of webtransport-go.

I think this is fine because the largest use case for webtransport is a browser client interacting with a webtransport server, and that won't change. A go-libp2p client connecting to a go-libp2p server should prefer quic over webtransport.

This is also probably fine because webtransport itself is experimental and still a draft. So there is an expectation that versions may not be compatible.

This issue is mostly for documentation, but if folks feel like I'm missing something, please let me know.

@marten-seemann
Copy link
Contributor

@MarcoPolo, your analysis is correct.

I'd like to point out that it's (almost) guaranteed that compatibility with the currently deployed WebTransport will break at least once more, namely when browsers update from the current draft version to the final RFC version (and multiple times if we go through more draft versions before the RFC).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants