Closed jcgruenhage closed 11 months ago
Should probably wait until QUIC RFC gets finalized (https://datatracker.ietf.org/doc/draft-ietf-quic-transport/) and situation with libraries improve.
Syncthing is similar to Yggdrasil in some sense, it's a decentralized file sync with LAN auto peering.
It's in Go and it has QUIC as a transport https://github.com/syncthing/syncthing/commit/e714df013f49a0fbfc84bc4b1a954b25bb0f9747
that uses https://github.com/lucas-clemente/quic-go which seems to be currently main golang imlpementation of QUIC in README it says
Since quic-go is under active development, there's no guarantee that two builds of different commits are interoperable. The QUIC version used in the master branch is just a placeholder, and should not be considered stable.
We probably don't want to lock this on single version implementing draft protocol so it'd be sorta break-y if done now. I think syncthing devs can sorta afford it because they have tcp to fall back to, and as far as I know ygg don't have such concept other than keeping connections on via different protocols in parallel.
QUIC support will land in v0.5. It is already in the future
branch.
From what I recall @Arceliar did some testing with QUIC in Go and found the performance to be bad. That's not to say that things haven't improved - would be worth looking into benchmarking this again or perhaps investigating different QUIC libraries to see if this is worth putting time into.