Quinn 0.2.0: QUIC protocol implementation in Rust
github.com
github.com
QUIC makes great progress on so many different networking problems: head of line blocking, connection establishment latency, connection migration, multiplexing...
Discussion about this is here:
I think they backed off to a simpler model of just using small inside QUIC.
I kind of liked the former: one day we need to get rid of dependencies on small packets, and move to Jumbo in the wide.
(dreamer..)
https://www.litespeedtech.com/products/litespeed-web-server/...
[1] http://www.noiseprotocol.org/
I imagine it got downvoted because it claims an old fork of the same code is "more modern" because it implements the must less capable Noise as a basis for QUIC rather than TLS.
We have something akin to CADT in protocol security where a certain type of person gets very excited about whatever new shiny thing they're convinced will fix everything and so they want to see it replace everything else immediately, no questions asked. Recently that's Noise.
Good news for people actually doing serious security engineering with Noise: In a few years these people will move on to whatever new thing is hot and leave you behind. Bad news: They will say everything you've done is crap when they do.
Less capable as in "fewer ways to hit yourself in the foot by forcing you to use secure cryptosystems", then sure.
WhatsApp and Wireguard have been using Noise for a couple of years now.
I have a plan for making the security protocol fully pluggable in Quinn, so that we can easily support things like Noise.
In fact, our experiments showed that QUIC always consumes more than half of the bottleneck bandwidth, even as the number of competing TCP flows increases.
Sometimes the standard library doesn't expose functionality you want, like the capability to read/write the ECN bits of your UDP packets, so you have to bind some syscalls yourself. The capability to do this is one of Rust's core strengths, and it does not compromise a program's rustiness any moreso than calling a wrapper around write to print "Hello, world!" does.
(And speaking as an outsider, arguments about purity seem like the last thing Rust needs.)
For example, if you want to run on musl with a statically linked libc, then a library which is just a wrapper around a C shared library which depends on glibc is a non starter.