UDPspeeder
gnet
Our great sponsors
UDPspeeder | gnet | |
---|---|---|
8 | 6 | |
4,589 | 8,823 | |
- | - | |
3.3 | 8.4 | |
9 months ago | 4 days ago | |
C++ | Go | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
UDPspeeder
- File transfer solution on a high-latency link
-
Free Public WiFi
It's been a while since I set it up, but iirc I ended up going with https://github.com/wangyu-/UDPspeeder
Pretty sure I used the suggested config and it's been working flawlessly in the background.
Or something like that. With wireguard, it's just a matter of pointing the config at the local socket for the fec tunnel (or any other type of tunnel, there was a dicussion about making it look like TCP http traffic the other day), so it's pretty much plug and play.
- UDPSpeeder usage
-
Show HN: Go-Nbd – A Pure Go NBD Server and Client
I just use nbd-server, nbd-client (kernel module nbd). While at home things are fine, when not at home things can get bad unless you use something like UDPspeeder <https://github.com/wangyu-/UDPspeeder> then you just need to deal with slower speeds.
I do backups with borg while connected through ethernet.
- Packet Replication / Duplication for Noisy Channels AKA Wan Smoothing
-
How to configure GSWave for the lowest internet speed?
The good news is you can implement some kind of ghetto error-correction at a higher level. Set up a tunnel to your pbx with a VPN which supports FEC -- something like UDPspeeder and configure it to send duplicates or triplicates of every packet. In this case, you're sacrificing bandwidth to improve reliability.
-
How to rewrite this C++ inheritance pattern in Rust?
All it needs is a bit of reed solomon encoding in the transport for additional reliability https://github.com/wangyu-/UDPspeeder
- Improve lossy link performance with Forward Error Connection
gnet
- Gnet is the fastest networking framework in Go
-
Handling TCP connections at scale - Ideas/Suggestions
Exciting question. Many goroutines consume resources accordingly and could also generate latency due to this. If you work under Linux: Have you looked at epoll? Since the system has to do basic connection handling anyway, you can shift or save at least part of the task. gnet is a very good library here to handle epoll & co. Maybe it makes sense to have a look at it or directly use epoll under go.
-
Show HN: Go-Nbd – A Pure Go NBD Server and Client
Since this heavily involves networking, take a look into using gnet [0]. You might find some interesting performance improvements by using that over just net.Conn.
[0] https://github.com/panjf2000/gnet
-
Millions of Active WebSockets with Node.js
Node is a joke. It's not good for this.
Check out https://github.com/panjf2000/gnet, it also has some links at the end.
-
Show HN: Python framework is faster than Golang Fiber
Since we're in the useless benchmark, this Go native library completely wreck any C/C++ lib wrapped by Python: https://github.com/panjf2000/gnet
-
Goroutines Are Not Significantly Lighter Than Threads
Go does not forces you to do any of that: https://github.com/panjf2000/gnet
What are some alternatives?
udp2raw - A Tunnel which Turns UDP Traffic into Encrypted UDP/FakeTCP/ICMP Traffic by using Raw Socket,helps you Bypass UDP FireWalls(or Unstable UDP Environment)
fasthttp - Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http
tinyfecVPN - A VPN Designed for Lossy Links, with Build-in Forward Error Correction(FEC) Support. Improves your Network Quality on a High-latency Lossy Link.
netpoll - A high-performance non-blocking I/O networking framework focusing on RPC scenarios.
Mosh - Mobile Shell
gev - 🚀Gev is a lightweight, fast non-blocking TCP network library / websocket server based on Reactor mode. Support custom protocols to quickly and easily build high-performance servers.
Eternal Terminal - Re-Connectable secure remote shell
evio - Fast event-loop networking for Go
funnel-proxy - Transparent multiplexing proxy
gaio - High performance async-io(proactor) networking for Golang。golangのための高性能非同期io(proactor)ネットワーキング
ParPar - High performance PAR2 create client for NodeJS
nbio - Pure Go 1000k+ connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-driven, easy-to-use.