yggdrasil-network / yggdrasil-go

An experiment in scalable routing as an encrypted IPv6 overlay network
https://yggdrasil-network.github.io
Other
3.47k stars 239 forks source link

QUIC transport #344

Closed jcgruenhage closed 11 months ago

neilalexander commented 5 years ago

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.

cathugger commented 5 years ago

Should probably wait until QUIC RFC gets finalized (https://datatracker.ietf.org/doc/draft-ietf-quic-transport/) and situation with libraries improve.

zhoreeq commented 4 years ago

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

cathugger commented 4 years ago

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.

neilalexander commented 11 months ago

QUIC support will land in v0.5. It is already in the future branch.