
Gnet: A high-performance,event-loop networking library written in pure Go - panjf2000
https://github.com/panjf2000/gnet
======
panjf2000
[https://github.com/panjf2000/gnet](https://github.com/panjf2000/gnet)

`gnet` is an Event-Loop networking framework that is fast and small. It makes
direct
[epoll]([https://en.wikipedia.org/wiki/Epoll](https://en.wikipedia.org/wiki/Epoll))
and
[kqueue]([https://en.wikipedia.org/wiki/Kqueue](https://en.wikipedia.org/wiki/Kqueue))
syscalls rather than using the standard Go
[net]([https://golang.org/pkg/net/](https://golang.org/pkg/net/)) package, and
works in a similar manner as
[libuv]([https://github.com/libuv/libuv](https://github.com/libuv/libuv)) and
[libevent]([https://github.com/libevent/libevent](https://github.com/libevent/libevent)).

`gnet` sells itself as a high-performance, lightweight, nonblocking network
library written in pure Go which works on transport layer with TCP/UDP/Unix-
Socket protocols, so it allows developers to implement their own protocols of
application layer upon `gnet` for building diversified network applications,
for instance, you get a HTTP Server or Web Framework if you implement HTTP
protocol upon `gnet` while you have a Redis Server done with the
implementation of Redis protocol upon `gnet` and so on.

 __`gnet` derives from project `evio` while having higher performance. __

