Releases: armanbilge/epollcat
v0.1.6
This is the seventh release of epollcat. It fixes socket shutdown to match JVM semantics.
Fixes
- Ignore
ENOTCONN
on 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
/write
bugs 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=true
for 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
EpollcatSuite
by @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
SIGPIPE
signals by @armanbilge in #67 - Fix hang in
KqueueExecutorScheduler
by @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
AsynchronousSocketChannel
by @armanbilge in #1 - Shim
AsynchronousChannelGroup
by @armanbilge in #4 - Shim
AsynchronousCloseException
+ more sock opts by @armanbilge in #5 - Implement TCP_NODELAY, SO_KEEPALIVE by @armanbilge in #6
- Update
ByteBuffer
positioning in read/writes by @armanbilge in #9 - Use
IPPROTO_TCP
by @armanbilge in #10 - Fixes for
EpollExecutorScheduler
by @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
EventPollingExecutorScheduler
abstraction by @armanbilge in #23 - Fix casting exception by @armanbilge in #24
- Introduce
UnsupportedPlatformError
by @armanbilge in #25 - Make
IOServerSocketChannel#accept
cancelable by @armanbilge in #31 - Do not background server in ping-pong test by @armanbilge in #29
- Support macOS via
kqueue
by @armanbilge in #27 - Make global
EpollRuntime
independent ofIORuntime
by @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
toAddrinfo
helper 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