gnet
kcptun
Our great sponsors
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.
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
kcptun
What are some alternatives?
fasthttp - Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http
quic-go - A QUIC implementation in pure Go
netpoll - A high-performance non-blocking I/O networking framework focusing on RPC scenarios.
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.
ssh - Easy SSH servers in Golang
evio - Fast event-loop networking for Go
sftp - SFTP support for the go.crypto/ssh package
gaio - High performance async-io(proactor) networking for Golang。golangのための高性能非同期io(proactor)ネットワーキング
ftp - FTP client package for Go
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.
kcp-go - A Crypto-Secure, Production-Grade Reliable-UDP Library for golang with FEC