vibe.d icon indicating copy to clipboard operation
vibe.d copied to clipboard

Support Google's new QUIC

Open wilzbach opened this issue 9 years ago • 3 comments

The QUIC protocol (Quick UDP Internet Connections) is an entirely new protocol for the web developed on top of UDP instead of TCP. It's major advantages is the hugely decreased latency

since Chrome 52, everyone has QUIC enabled by default, even to non-whitelisted domains

Some pointers:

https://ma.ttias.be/googles-quic-protocol-moving-web-tcp-udp https://en.wikipedia.org/wiki/QUIC

Well this is only a short heads-up that this is a open field with currently only one server supporting it, so might be a good idea to hop on this train ;-)

wilzbach avatar Aug 01 '16 19:08 wilzbach

It depends on the use case, but overall SCTP is a superior protocol. The only benefit that QUIC has is that is supported by chrome. During my internship last year I worked on a pure D usermode implementation. Before that my mentor had researched many competing alternatives (QUIC, SPDY, RUDP, SCTP, etc) and concluded that SCTP had the best feature set, the most robust specification and was used at scale by many (most?) telecommunication companies which have really high reliability and performance requirements. The goal of my project was that it should provide the flexibility to run SCTP on top of higher-level protocol like message queue or UDP), unlike the vanilla standard which assumes running on top of raw IP networking, which would imply a kernel mode implementation. I really hope that my project will be open-sourced, so I can integrate it with vibe.d, though I can't make any promises - you know how it is with large corporations ;) I will probably know in a few months, since I'm starting work there full-time :)

PetarKirov avatar Aug 02 '16 13:08 PetarKirov

It looks like QUIC is now widely adopted, looking that the wikipedia page. The RFC was accepted last month, too.

Geod24 avatar Jun 24 '21 21:06 Geod24

See also https://github.com/dlang/projects/issues/84

I had started an implementation a while ago, but didn't come very far due to lack of time, mostly getting structs and enums in place, but no logic, yet. The spec was still a draft at that point though, so it might make sense to just rewrite that anyway. Or just port libquic to D.

s-ludwig avatar Jun 25 '21 08:06 s-ludwig