Releases: kohlschutter/junixsocket
Releases · kohlschutter/junixsocket
junixsocket 2.7.0
Users of junixsocket are strongly advised to upgrade to this version
- New supported platform (out of the box): Android (aarch64, arm-linux-androideabi, x86_64, i686)
- New platforms that can be used when building the native library from source: Haiku, IBM z/TPF
- Add selftest GUI app for Android (“junixsocket-selftest-android”)
- Add ability to get native file descriptor number via FileDescriptorCast
- Add AFSocketCapability for “large port numbers” (larger than 65535)
- Add support to convert UnixDomainSocketAddress to AFUNIXSocketAddress (Java 16+)
- Add support for AF_SYSTEM (macOS), which allows creating your own VPN via utun, for example.
- Add initial support for SOCK_SEQPACKET/SOCK_RDM/SOCK_RAW
- Fix potential data corruption when sending non-direct ByteBuffers larger than 8192 bytes
- Fix potential data corruption when receiving non-direct ByteBuffers with non-zero position
- Fix intermittent hangs when sending datagrams on macOS, BSD
- Fix “org.eclipse.jdt.annotation” JPMS module: no longer required at runtime
- Fix Exception messages from native code being empty in some Linux environments
- Fix selftest failing for vsock in some Linux environments
- Improve JNI library lookup; load from user.home/user.dir if tmpfs is mounted with noexec
- Improve concurrency performance for RMI over Unix domain sockets
- Improve reliability on exotic environments
- Update dependencies, improve tests, selftest, build scripts
- Require Java 16 to build (still supports running on Java 8 and newer)
- Last but not least: junixsocket finally has a logo!
junixsocket 2.6.2
- Add socket connectors for AF_VSOCK, Firecracker
- Add mayStopServerForce to AFSocketServerConnector
- Fix false-positive selftest failure on slow machines
- Fix potential hang in send
- Fix support for TIPC/VSOCK when building GraalVM native images
- Fix serialization of AFSocketAddresses
- Update dependencies, especially use the new mysql.connector.j
junixsocket 2.6.1
- Add AFSocket.checkConnectionClosed to probe connection status
- Fix connection status checks and error handling
- Fix bind behavior on Windows, support re-bind with reuseAddress
- Fix and improve unit tests/selftests, remove several false-positive errors found in the wild (Azure Cloudshell/Microsoft CBL-Mariner 2.0, Amazon EC2, OpenBSD, etc.)
- Fix SimpleTestServer demo, actually counting now to 5, not 6.
- Make builds reproducible, align timestamps with git commit
NOTE: If you're seeing unexpected errors in selftest, please verify with the attached junixsocket-selftest-2.6.1-hotpatch-jar-with-dependencies.jar
. There may be false-positive socket timeout issues on very slow machines (e.g., qemu s390).
junixsocket 2.6.0
- Add support for GraalVM native-image
- Add support for native-image selftest
- Add support for AF_VSOCK (on Linux, and some macOS VMs)
- Reintroduce deprecated legacy constructors for AFUNIXSocketAddress that were removed in 2.5.0.
- Parent POM has been renamed from junixsocket-parent to junixsocket
junixsocket 2.5.2
- Fix address handling in the Abstract Namespace
- Fix support for very large datagrams (> 1MB)
- Fix InetAddress-wrapping of long addresses
- Update Xcode support script, crossclang
- Bump postgresql version in demo code
- Fix dependency for custom architecture artifact
junixsocket 2.5.1
- Add support for IBM z/OS (experimental, binary not included)
- Add support for building from source on arm64-Linux
- Add junixsocket support for jetty via junixsocket-jetty
- Fix Selector logic (more bug fixes)
- Documentation updates
junixsocket 2.5.0
- New supported platforms: AIX 7 Power64, IBM i Power64, Windows ARM64, Windows Server 2019 & 2022
- Generic rework to support more than just Unix Domain sockets
- Add support for AF_TIPC (on Linux)
- Add support for using sockets passed as standard input
- Add support for address-specific, non-standard URIs (for example
unix:// and tipc://), as well as socat addresses - Add support for using FileDescriptor for ProcessBuilder Redirects (Java 9+)
- Add support for peer credentials (PID) on Windows
- Fix Selector logic
- Fix cross-compilation on Apple Silicon
- Fix a file descriptor leak (regression in 2.4.0)
- Improve behavior on partially unsupported platforms and allow loading of Windows 10 native
library on other Windows versions (e.g., Windows Server 2022, Windows 8.1). - Javadoc improvements, Code cleanup
- Deprecate AFUNIXSocketCapability in favor of AFSocketCapability
- Drop support for Java 7
junixsocket 2.4.0
- New supported platforms: NetBSD, OpenBSD, DragonFlyBSD (AMD64-builds included by default)
- Add support for Datagram sockets
- Add support for non-blocking I/O, Java NIO SocketChannel, DatagramChannel, ByteBuffer, Selector, Pipe, etc.
- Add support for socketpair (with IP-based emulation on Windows)
- Add support for casting FileDescriptors to Socket, etc.
- Add support for Peer Credentials on Solaris/Illumos
- Improved creation and reuse of AFUNIXSocketAddress instances
- Add basic support to wrap an AFUNIXSocketAddress as an InetAddress
- Add fast-path for single-byte read/write
- Significant internal code refactoring and cleanup (both Java and native C code)
- AFUNIXRegistry lookup can now take a timeout parameter (to coordinate between starting processes)
- Replaced the "finalize" logic with a custom Cleaner for Java 9 and above
- Fixed compatibility issue with OkHttpClient, add demo code
- Fixed a race condition when connecting to a registry that's just starting up.
- More test cases, increased unit test code coverage
- Simplified local compilation on non-macOS/Linux systems.
- Improved selftest
junixsocket 2.3.4
Fix bind/stat on glibc-based Linux on aarch64 and RISC-V (regression from 2.3.2)
junixsocket 2.3.3
- Add support for aarch64 on Apple Silicon Macs
- Improved throughput by up to 40% by removing some JNI overhead (now on par with JEP380)
- Fix “undefined symbol: stat” error on older Linux machines
- Fix self-test on Windows; add more system information to selftest
- Fix LICENSE/NOTICE files (no license change, just reorganization)
- Fix build issues with RISC-V (use LLVM 9)
- Fix build issues on macOS
- Improve handling of ancillary receive buffers
- Add a new system property to control what happens when the library override fails to load
- Add an Xcode project to simplify cross-compilation; improved crossclang