Releases: panjf2000/gnet
Releases · panjf2000/gnet
Gnet v1.4.0, Lupin the Third
Features
- Support TCP_NODELAY socket option 525df8e
- Implement the lock-free queue for dispatching tasks faster (#181)
Enhancements
- Shrink the ring-buffer for saving memory 14fd04a
- Improve event poll fc042cc
- Improve the buffered channels 83b96ed
- Shrink the poll event list when it need to 1587638
- Improve the I/O in event-loop c554f4e
- Prioritize writable events 0f08c8f
- Make it more robust when running async jobs 6509b85
- Improve the poller waking logic 4d8accb
Bugfixes
- Re-enqueue the subsequent jobs when a error occurs 1af3f6c
- Close and release a socket when error occurs 9d86c92
- Check outbound buffer in case the socket has been released 035f614
- Avoid starving sockets e315252
Docs
- Enrich the doc about using UDP packets 0047c15
- Add more user cases of gnet 076b16c
- Update benchmark results 028bab2
- Update the description about ring-buffer 38b086a
Misc
Gnet v1.3.0, Basilisk: Kôga ninpô chô
Features
- Determine logging mode by environment variable 2a7977f
- Support locking each I/O event-loop goroutine to an OS thread 6fd6413
Enhancements
- Improve the implementation of Least-Connections load-balancing b6a5f56
- Speed up the Least-Connections load-balancing b5fbbda
- Leverage system calls instead of
net
package to create listeners ccc8c64 - Refine the logging module f46da44
- Reorg errors in gnet 1c2f4b0
- Move logging module into internal package 00af504
- Take off the codec from eventloop bc85c34
- Refactor for buffer in Conn 455c5ae
- Refactor the load-balancing algorithm of source addr hash abbf582
- Make channel buffered if necessary 43f93ca
Bugfixes
- Fix a bug that led to negative counter of sync.WaitGroup on Windows 16ed4ab
- Add "windows" build tag under SO_REUSEPORT mode 7862f3e
- Supplement all the formal protocol formats of TCP and UDP 258253c
- Resolve the issue of closing one fd twice b5a5c71
- Fix concurrent loopCloseConn causes panic (#111)
- Eliminate duplicate calls to loopCloseConn a72f5fd
Docs
- Add a customized codec example (#90)
- Add placeholder for user cases and new relevant article 5197f18
- Renew results of techempower benchmark 61eee8f
- Add the list of donors 42e04dd
- Add xs:code 33a3e57
- Build an official website for gnet 49363cd
- Move the majority of content to website and simplify READMEs 903ff84
Misc
Gnet v1.2.0, Whisper of the Heart
Features
- Support graceful shutdown with OS signals (Fixes #82)
Enhancements
- Improve the creation processes of netpoller (Fixes #72) ccc6c25
- Reuse slice struct when resetting buffer 916c255
- Make a big allocation on ring-buffer at the first time 61963bd
Docs
- Update
Features
section in READMEs a0d53f5 - Add a new article about gnet d500bf4
- Supplement the missing acknowledgment item b031357
Misc
Gnet v1.1.0, Mobile Suit Gundam
Features
- Support new load-balancing algorithm of least-connections (#63)
- Support new load-balancing algorithm of source-addr-hash (#64)
- Add a new API to get the number of currently active connections 5ae4849
Bugfixes
- Fix an issue of not recycling byte-buffers 3b6edfd
- Fix a bug of reading data from the full ring-buffer a9caa26
Enhancements
- Improve several methods of ring-buffer 828e845
- Refine the range indexes when re-slicing 008c0c9
- Lazily allocate memory for ring-buffers 095ef52
Docs
- Switch go doc to pkg.go.dev b973741
- Add TechEmpower benchmarks 65d859b 9bd48a3 04b473e 3743d0f
- Improve some statements cc4ccd4
Misc
Gnet v1.0.0, Neon Genesis Evangelion
Note
This is the first major release!
🚀 Features
- High-performance event-loop under networking model of multiple threads/goroutines
- Built-in load balancing algorithm: Round-Robin
- Built-in goroutine pool powered by the library ants
- Built-in memory pool with bytes powered by the library bytebufferpool
- Concise APIs
- Efficient memory usage: Ring-Buffer
- Supporting multiple protocols/IPC mechanism: TCP, UDP and Unix Domain Socket
- Supporting two event-driven mechanisms: epoll on Linux and kqueue on FreeBSD
- Supporting asynchronous write operation
- Flexible ticker event
- SO_REUSEPORT socket option
- Built-in multiple codecs to encode/decode network frames into/from TCP stream: LineBasedFrameCodec, DelimiterBasedFrameCodec, FixedLengthFrameCodec and LengthFieldBasedFrameCodec, referencing netty codec, also supporting customized codecs
- Supporting Windows platform with
event-driven mechanism of IOCPGo stdlib: net - Additional load-balancing algorithms: Random, Least-Connections, Consistent-hashing and so on
- TLS support
- Implementation of
gnet
Client