A lightweight, fast, non-blocking TCP network library and WebSocket server for Go, based on the Reactor pattern.
Gev is a high-performance, event-driven networking library for Go, designed to simplify the creation of fast TCP servers and WebSocket endpoints. It leverages the Reactor pattern with efficient epoll/kqueue event loops to handle massive concurrent connections with minimal resource overhead.
Go developers building high-performance TCP servers or WebSocket applications that require handling massive concurrent connections, such as real-time messaging systems, game servers, or API gateways.
Developers choose Gev for its combination of a minimalistic API that abstracts event loop complexity, fine-grained control over network protocols, and high performance through scalable I/O multiplexing and multi-core support.
🚀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.
Uses epoll on Linux and kqueue on BSD for efficient I/O multiplexing, handling massive concurrent connections with minimal resource overhead as demonstrated in performance benchmarks.
Configurable worker goroutines leverage all CPU cores effectively, with default settings matching the host's core count for optimal throughput in multi-threaded scenarios.
Plug-in architecture allows easy integration of custom data framing, evidenced by included WebSocket and Protobuf plugins and the ability to implement the Protocol interface for tailored protocols.
Implements dynamic ring buffers that expand as needed, reducing memory fragmentation and improving performance for variable payloads, as highlighted in the network model.
The library lacks native support for TLS encryption, requiring developers to manually integrate secure connections using external packages like crypto/tls, which adds complexity.
Implementing the Protocol interface for custom data framing demands a deep understanding of event-driven I/O and ring buffer management, as shown in the detailed UnPacket and Packet method requirements.
Focuses on low-level networking, so common web server features like HTTP routing, middleware, or session management aren't included, necessitating additional boilerplate code for full applications.
Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http
Pure Go implementation of the WebRTC API
Reliable UDP Transmission Optimizer based on KCP: Enhancing network efficiency in poor connectivity environments.
Cloudflare Tunnel client
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.