-
Notifications
You must be signed in to change notification settings - Fork 5.4k
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
Implement WebTransport (QUICTransport) API #9017
Comments
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions. |
Info: WebTransport will land in Chrome stable in 76 days (Jan 4). |
Info: Webtransport landed in chrome 97 |
ieft just published rfc for http/3 : https://www.theregister.com/2022/06/07/http3_rfc_9114_published/ And just to add more acronyms, omg, bbq, wtf |
I am working on this |
How does this feature relate to As far as I understand WebTransport is a superset of WebSocketStream? The latter only supporting backpressure ontop of the existing WebSocket spec (ie. ordered messages). |
Really good question! Web sockets are
|
WebTransport also supports reliable delivery (TCP) via I suppose what I'm getting at is this: WebTransport seems to be a superset of WebSocketStream, and be mature with regards to its specification. Has the Deno team considered proceeding with a WebTransport implementation instead of promoting WebSocketStream to stable? |
datagrams are not reliable or ordered.
It's not. Under the hood they are fundamentally different transport protocols
They are complementary; |
Although technically if we want to get into the fine details, WebTransport is not pure UDP access either. It's another protocol that offers things on top of UDP, such as TLS encryption. |
Ah, apologies. I got this mixed up with streams portion of the API. From the web.dev explainer:
I don't see how then this can't replace WebSocketStreams as again, it seems to be a superset. |
https://www.lifesize.com/blog/tcp-vs-udp/ think of websockets as the tcp example, and webtransport as the udp example |
@mreinstein it is a superset tho 😅 |
I understand what you mean now. There does appear to be a reliably-ordered stream API described in this explainer doc. I'm not sure though that because both websocket streams and webtransport streams provide a similar api that webtransport is truly a superset. Under the hood they are still completely different transports, with different network behavior. Maybe the better question is why shouldn't deno support both WebSocketStreams and WebTransport? They are both legitimate web apis with different use cases. |
No, WebTransport is neither a super-set of WebSocketStream nor are these Web APIs related. They are based on different networking protocols. |
The implementation should be finished by next week. I just need to get my ass up. No one is paying me for doing this and I'm just a simple blue-collar worker. I clean floors and move pallets within a warehouse. Computer programming is my hobby. I'm usually just too exhausted at the end of day. |
There's a relevant discussion here WebKit/standards-positions#18 |
It makes sense. However, since Firefox will also implement WebTransport, it will soon become a web standard. |
Safari have now officially marked their position as "support". Also enabled in Firefox Nightly. |
Quic is really the next big thing and I hope that the new flash server "rewrite" will have quic support. |
If HTTP3 is the current blocker for this feature wouldn't it be more beneficial for everyone if the first version would be WebTransport over HTTP2 and then when the time comes adding HTTP3 to it? |
That doesn't provide benefit because HTTP/2 lacks a non-TCP transport mode. Anything based on HTTP/2 would effectively have identical latency characteristics to websockets. The point of WebTransport is it gives you a UDP based delivery with encryption. |
@mreinstein thats a myth quic is kinda like tcp on udp (simplified). |
It's not a myth, and it's documented pretty clearly, in both the chrome intro article: As well as the mdn docs: |
Once we have QUIC support implemented, we should consider implementing the WebTransport API.
A long way to go, but just to have a place for discussions for this feature.
More informations:
The text was updated successfully, but these errors were encountered: