Releases: armanbilge/epollcat
v0.1.7
This is the final release of epollcat, which is now deprecated. Upgrade to Cats Effect v3.6.0 and FS2 v3.12.0 and use IOApp/IORuntime instead of EpollApp/EpollRuntime.
Full Changelog: v0.1.6...v0.1.7
v0.1.6
This is the seventh release of epollcat. It fixes socket shutdown to match JVM semantics.
Fixes
- Ignore
ENOTCONNon socket shutdown by @armanbilge in #157
Updates
- Update cats-effect to 3.5.1 by @nimble-agar-steward in #141
- Update scala-library to 2.13.11 by @nimble-agar-steward in #140
- Update scala-library to 2.12.18 by @nimble-agar-steward in #139
Full Changelog: v0.1.5...v0.1.6
v0.1.5
This is the sixth release of epollcat. It adds support for Linux ARM which is now tested in CI.
Features
- Setup Cirrus ARM CI by @armanbilge in #125
Fixes
- Fix
read/writebugs when buffer position == limit by @armanbilge in #114
Updates
- Update cats-effect to 3.5.0 by @nimble-agar-steward in #128
- Update scala3-library to 3.3.0 by @nimble-agar-steward in #132
- Update nscplugin, sbt-scala-native, ... to 0.4.14 by @nimble-agar-steward in #138
Full Changelog: v0.1.4...v0.1.5
v0.1.4
This is the fifth release of epollcat. It now sets SO_REUSEADDR to true by default on server sockets, to match the JVM.
Fixes
- Default
SO_REUSEADDR=truefor server socket by @armanbilge in #113
Updates
- Update nscplugin, sbt-scala-native, ... to 0.4.10 by @nimble-agar-steward in #108
- Update scala3-library to 3.2.2 by @nimble-agar-steward in #109
- Update cats-effect to 3.4.7 by @nimble-agar-steward in #111
Full Changelog: v0.1.3...v0.1.4
v0.1.3
This is the fourth release of epollcat. It improves handling of connect() and bind() to "unusual" IP addresses.
Fixes
- Fix #63: Server bind(null) becomes JVM bind(wildcard) by @LeeTibbert in #97
- Fix #92: Special case connecting to wildcard on macOS by @LeeTibbert in #93
Updates
- Update nscplugin, sbt-scala-native, ... to 0.4.9 by @nimble-agar-steward in #94
- Update cats-effect to 3.4.2 by @nimble-agar-steward in #96
Full Changelog: v0.1.2...v0.1.3
v0.1.2
This is the third release of epollcat. It adds support for Scala Native 0.4.8 and fixes a couple of IPv6-related bugs (special thanks to @LeeTibbert).
Enhancements
- Optimize socket read/write with array ptrs by @armanbilge in #85
Fixes
- Fix #52: Use IPv6 features only on IPv6 capable systems by @LeeTibbert in #68
- Fix #88: make epollcat more robust to macOS IPv6 getsockname quirk by @LeeTibbert in #91
Updates
- Update scala3-library to 3.2.1 by @nimble-agar-steward in #83
- Update nscplugin, sbt-scala-native, ... to 0.4.8 by @nimble-agar-steward in #84
- Update cats-effect to 3.4.1 by @nimble-agar-steward in #90
Behind-the-scenes
- Add platform flags to
EpollcatSuiteby @armanbilge in #70 - Fix test output interleaving by @armanbilge in #69
- Test with monitor by @lolgab in #79
New Contributors
Full Changelog: v0.1.1...v0.1.2
v0.1.1
This is the second release of epollcat. It patches a couple bugs that were observed on macOS. Special thanks to @lolgab for reporting #35 with an excellent reproducer.
Fixes
- Prevent
SIGPIPEsignals by @armanbilge in #67 - Fix hang in
KqueueExecutorSchedulerby @LeeTibbert in #65
Updates
- Update scala-library to 2.12.17 by @nimble-agar-steward in #66
Full Changelog: v0.1.0...v0.1.1
v0.1.0
This is the first stable release of epollcat, an I/O-integrated runtime for Cats Effect on Scala Native. It supports Linux and macOS. Use it with FS2, http4s Ember, Skunk, Rediculous, and more!
Very special thanks to Lee Tibbert, a Scala Native core contributor who brought a wealth of networking experience (and humor!) to this project. In addition to their code contributions, Lee spent countless hours reviewing my PRs, tracing bugs, and upstreaming fixes in Scala Native core. I could not have done it without you!
What's Changed
- TCP via
AsynchronousSocketChannelby @armanbilge in #1 - Shim
AsynchronousChannelGroupby @armanbilge in #4 - Shim
AsynchronousCloseException+ more sock opts by @armanbilge in #5 - Implement TCP_NODELAY, SO_KEEPALIVE by @armanbilge in #6
- Update
ByteBufferpositioning in read/writes by @armanbilge in #9 - Use
IPPROTO_TCPby @armanbilge in #10 - Fixes for
EpollExecutorSchedulerby @armanbilge in #11 - Tests and fixes for read/write post-shutdown input/output by @armanbilge in #12
- Accept server sockets with non-blocking enabled by @armanbilge in #13
- Fix
getRemoteAddress()by @armanbilge in #16 - Reorganization by @armanbilge in #17
- Create
EventPollingExecutorSchedulerabstraction by @armanbilge in #23 - Fix casting exception by @armanbilge in #24
- Introduce
UnsupportedPlatformErrorby @armanbilge in #25 - Make
IOServerSocketChannel#acceptcancelable by @armanbilge in #31 - Do not background server in ping-pong test by @armanbilge in #29
- Support macOS via
kqueueby @armanbilge in #27 - Make global
EpollRuntimeindependent ofIORuntimeby @armanbilge in #44 - Fix #39: getaddrinfo numeric error codes are now translated by @LeeTibbert in #40
- Store the remote address eagerly by @armanbilge in #41
- Factor out
toAddrinfohelper by @armanbilge in #49 - IPv6 support by @armanbilge in #50
New Contributors
- @armanbilge made their first contribution in #1
- @LeeTibbert made their first contribution in #40
Full Changelog: https://github.com/armanbilge/epollcat/commits/v0.1.0