# panjf2000/gnet

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

Repository: https://github.com/panjf2000/gnet
Canonical: https://ross.abutalabs.com/products/gnet
Homepage: https://gnet.host
Language: Go
License: Apache-2.0
License Family: permissive
Topics: event-driven, event-loop, networking, non-blocking, epoll, kqueue, go, golang, reactor, tcp, goroutine, io, udp, network, async, asynchronous
Last push: 2026-07-09T13:43:46+00:00

## Health v2 (maintenance only)
Score: 84/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 91, release rhythm 67, longevity 100
- inputs: {"age_days": 2747, "days_push": 55, "days_rel": 61, "gap_med": 98.0, "n_releases_24m": 5}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 11235, forks 1121 (observed 2026-08-28T04:10:46.520304+00:00)

## What it is
gnet is a high-performance, lightweight, event-driven networking framework written in pure Go, built on epoll and kqueue with a reactor pattern. It operates at the transport layer (TCP, UDP, Unix Domain Socket) so developers can implement application-layer protocols like HTTP, RPC, WebSocket, or Redis on top of it.

## Use cases
- build a high-performance TCP server in Go
- implement a custom application-layer protocol like Redis or RPC
- write an event-driven network service with lower memory than Go net
- build a UDP-based networking application
- create a WebSocket or HTTP server from scratch on a fast event loop
- replace goroutine-per-connection networking for performance-sensitive services

## When to avoid
- you want a batteries-included HTTP framework with routing and middleware
- your workload is not performance-sensitive and Go's standard net package suffices
- you prefer goroutine-per-connection programming models
- you need application-layer protocols provided out of the box

## Facets
- artifact type: framework
- maturity: stable
- function: web-framework, http-server, websocket, rpc, networking, concurrency
- domain: networking, backend, web-development, developer-tools, performance
- platform: windows, bsd, cross-platform, go
- tags: event-driven, event-loop, reactor-pattern, epoll, kqueue, non-blocking-io, tcp, udp, unix-domain-socket, high-performance, lock-free, linux, macos

## Member repositories
- panjf2000/gnet (main) score 84

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:10:46.520304+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:16:25.561848+00:00, confidence not recorded.
  - readme: https://github.com/panjf2000/gnet (fetched 2026-08-28T04:10:46.520304+00:00, sha 404d051ba447)
  - homepage: https://gnet.host (fetched 2026-08-29T08:14:54.090874+00:00, sha 517de364962a)
  - site_page: https://gnet.host/docs (fetched 2026-08-29T08:14:54.152042+00:00, sha f7a8463a870b)
  - site_page: https://gnet.host/docs/about/overview (fetched 2026-08-29T08:14:54.214638+00:00, sha 8c3d923b8222)
- Data as of 2026-08-30T08:39:29.467469+00:00.
