7 ms·
Neqo, an Implementation of QUIC Written in Rust
- rapsey 7y agoA third rust QUIC implementation. They all have their own crypto lib. Neqo with NSS, Quiche with BoringSSL and Quinn with rustls.
- pornel 7y ago"their own crypto" sounds worse than it is — they interface with existing TLS libraries, which are all based on well-tested NSS or OpenSSL primitives. Given Rust's focus on performance and security, QUIC may be the new Hello World for Rust ;)
- thombles 7y agoSerious question - can anyone explain how you would choose which of these to use? e.g. I'm aware that Quinn is tokio-based whereas Quiche is an async-agnostic state machine. Where does this one fit in?
- rapsey 7y agoIn firefox.
- dochtman 7y agoDisclaimer: one of Quinn's maintainers. Actually, Quinn is split up in two crates: quinn is the tokio-based async layer, but quinn-proto provides an async-agnostic state machine (and provides a trait-based abstraction over its use of rustls and ring). Also, I think quiche and neqo are squarely aimed at serving their particular corporate goals, whereas quinn is really aimed at being a library for use in the Rust ecosystem. So far that has mostly been the tokio ecosystem, but that might change as the async/await story matures.
- kbumsik 7y agoSo it's made by Mozilla. It is going to the implementation of HTTP/3 in Firefox?
- enz 7y agoYes, I think this is the plan.
- pcr910303 7y agoFor people like me who wondered what QUIC was: QUIC is an entirely new protocol for the web developed on top of UDP instead of TCP. UDP has the advantage that it is not dependent on the order of the received packets, hence non-blocking unlike TCP. If QUIC is used, the TCP/TLS/HTTP2 stack is replaced to UDP/QUIC stack. According to Wikipedia: > As improving TCP is a long-term goal for Google, QUIC aims to be nearly equivalent to an independent TCP connection, but with much reduced latency and better SPDY-like stream-multiplexing support. > If QUIC features prove effective, those features could migrate into a later version of TCP and TLS (which have a notably longer deployment cycle). So basically, QUIC wants to combine the speed of the UDP protocol, with the reliability of the TCP protocol.
- fluffything 7y ago> If QUIC is used, the TCP/TLS/HTTP2 stack is replaced to UDP/QUIC stack. The reason QUIC is "relevant" is because HTTP3 is built on top of UDP/QUIC
- tialaramex 7y ago>> If QUIC features prove effective, those features could migrate into a later version of TCP and TLS (which have a notably longer deployment cycle). When I searched for it, this text is not present in the Wikipedia article about QUIC though it presumably was present in some version as many _other_ sites on the Internet quote this sentence. Can you say where you actually saw it? The reality is probably closer to, a successful QUIC will replace TCP (and TLS) in future protocols or, such protocols will give up and move to HTTP so as to take advantage of QUIC anyway. One reason is as so often, middleboxes. The usual corporate cycle (new technology is embraced on a small scale because it avoids the overhead of management oversight, grows to become important to the business, importance means oversight imposed, major benefit of technology destroyed, rinse and repeat) injures the Internet in the form of middleboxes, so of course a technology is deployed with the purpose of undermining the middleboxes and that technology is QUIC.
- the8472 7y agoDespite middleboxes TCP and TLS are still evolving. It is slow and painful compared to green field designs like QUIC, but it still happens. Latency-based congestion controllers such as CTCP and BBR have gained adoption to better utilize long, fat pipes while keeping bufferbloat down. TFO was introduced to cut down the connection setup latency by 1 RTT if the endopints have seen each other before before. There is some noise about upstreaming MPTCP to linux which would then eventually make its way to android where it would be a big deal for seamless wifi/mobile transitioning. TLS' evolution is self-evident from new versions including dramatically changed handshakes rolling out.
- The_rationalist 7y agoAre there any HTTP 3 benchmarcks?
- jmpeax 7y agoNo description whatsoever of wtf Neqo is, nor wtf QUIC is... this must be some kind web library because every web developer is a narcissist that thinks nothing else but the web exists. Googling "QUIC"... yep, every time.
- resoluteteeth 7y agoIt's not a web framework. It's the replacement for tcp that http3 uses.
- jon-wood 7y agoI don’t get the anger here. Quite simply if you don’t know what QUIC is then you probably don’t need a library which implements it, and so there’s not much point doing all the groundwork to explain that.
- jmpeax 7y ago"All the ground work"... only needs a short sentence. Is it a graphics library? A parser? A command line tool? A sorting algorithm? A heat equation solver? Oh, it's a tcp library.
- deleted 7y ago[deleted]