Gnet v2.6.0, Ghost in the Shell
[!IMPORTANT] As of this release, the minimum required Go version to run
gnetis 1.20!
🚀 Features
- feat: support SO_BINDTODEVICE on Linux (#650)
- feat: support configurable I/O chunk to drain at a time in edge-triggered mode (#646)
🛩 Enhancements
- chore: use errors.Is and errors.Join for customized errors (#640)
- opt: close file descriptor after OnClose() for UDP along with code improvement (#624)
- opt: close file descriptor after OnClose() (#622)
- opt: bring down the
maxBytesTransferETand defer write in ET mode (#606) - opt: clamp the event-loops in ET mode to avaoid starving (#599)
- opt: reduce duplicate code for I/O reactors (#590)
🐛 Bugfixes
- bug: fix Conn.Next not safe (#648) (#649)
- opt: close file descriptor after OnClose() for UDP along with code improvement (#624)
- opt: close file descriptor after OnClose() (#622)
- bug: fix the wrong default behavior of TCPNoDelay on client side (#619)
- bug: fix Conn.Next and Conn.Peek panic On Unix (#616)
- opt: fix compilation errors on *BSD (#593)
📚 Documentation
- opt: bump up minimum required Go version to 1.20 (#638)
- bug: fix the wrong default behavior of TCPNoDelay on client side (#619)
🗃 Misc
- test: add test for SO_BINDTODEVICE with TCP (#652)
- chore: use errors.Is and errors.Join for customized errors (#640)
- test: increase the test code coverage a little bit (#618)
- chore: upgrade modules and update .gitignore (#613)
Thanks to all these contributors: @panjf2000, @serious-snow and @zhongweikang for making this release possible.