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