panjf2000/gnet

🚀 gnet is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go.

View on GitHub ↗Jump to charts ↓Open shareable report →

Summary Information

Updated 59 minutes ago
Added to GitGenius on September 5th, 2026
Created on February 24th, 2019
Open Issues & Pull Requests: 0 (+0)
GitHub issues: Enabled
Number of forks: 1,122
Total Stargazers: 11,245 (+0)
Total Subscribers: 163 (+0)

Repository Insights (GitGenius)

Median issue/PR response: N/A
Mean response time: 17.7 hours
90th percentile: 43.0 hours
Tracked items: 83

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 8% of issues opened in the past year have been closed. Three people close 77% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 0
New in 7 days: 0
Closed in 7 days: 0
Avg open age: N/A days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • stale (41)
  • waiting for response (36)
  • help wanted (35)
  • question (34)
  • enhancement (30)
  • proposal (29)
  • needs investigation (19)
  • needs more info (18)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

gnet is a high-performance, event-driven networking framework written in pure Go.

gnet addresses the need for ultra-fast, lightweight network I/O in scenarios where Go's standard net package introduces unnecessary overhead. It builds directly on epoll and kqueue system calls to implement a non-blocking, event-driven reactor pattern. Rather than spawning a goroutine per connection as the standard library does, gnet uses an event loop model that processes multiple connections efficiently within fewer threads, achieving higher throughput and lower memory consumption in specific workloads.

Developers should choose gnet when building high-concurrency network services where performance and resource efficiency matter more than the simplicity of Go's conventional networking model. It suits applications like game servers, real-time messaging systems, or proxy services that handle thousands of concurrent connections. The README notes that gnet and the standard net package follow fundamentally different philosophies in network programming, making them incompatible approaches rather than drop-in alternatives. The tool works similarly to established frameworks in other languages such as libuv, netty, twisted, and tornado.

The project maintains active test coverage and builds successfully across Linux, macOS, BSD variants, and Windows. Development follows a structured approach with organized issue tracking and documentation available through standard Go package resources.