Releases: odnoklassniki/one-nio
Releases Β· odnoklassniki/one-nio
2.0.0
Breaking changes
- The native part of one-nio now links and works only with OpenSSL 3 (tested on OpenSSL versions 3.0 and 3.2). The OpenSSL library file must have name
libssl.so.3
. - Switched from GLIBC 2.2.5 to GLIBC 2.38
Major changes
- Added support for Kernel TLS, including
sendfile()
- Added support for TLS early data (TLS 1.3 0-RTT)
- Added ability to export encryption keys (SSL keylog)
- Added support for SSL certificate compression (RFC8879, man)
- Added ability to use an external cache for SSL sessions
- Added ability to constrain selectors used by an acceptor (
one.nio.server.ServerConfig#pinAcceptors
) - Added ability to use a single acceptor thread for all sockets (
one.nio.server.ServerConfig#multiAcceptor
) - Added support for server-sent events in
one.nio.http.HttpClient
(spec) - Also various fixes and optimizations
Big thanks to:
- @Blooof
- @ltalal
- @sergiusz-n
and other current and former colleagues.
1.7.1
1.7.0
1.6.1
1.6.0
java.time
serialization- Arena Allocator
PaddedRWLock
to avoid false sharing- Handle EINTR in socket read/write
- Enum serialization fixes
- Fixed global perf counters in presence of offline CPUs
HttpClient
should support responses without Content-Length / Transfer-Encoding- Gracefully close sessions when stopping Server
1.5.0
- JDK 17 support. Workaround
setAccessible
restrictions - New BPF map types
SOCK_SEQPACKET
supportsendMsg
/recvMsg
for passing descriptors over a UNIX domain socket- Serializer generator now tolerates missing class files
- Fixed serialization of private Records
- Optimize
Utf8.read
for Compact Strings - Customizable strategy for reusing OffheapMap entries
- Allow custom reference tags in serialization streams
- Fixed overflow bugs in
ObjectInput(Output)Channel
- A method to open all JDK modules
Json.fromJson
with a given Class or Type- A few new methods in HTTP API
- Migrated to ASM 9
- Reduced size of libonenio binary
1.4.0
- eBPF and extended perf_events support
- HttpClient fixes
- Reflection and serialization now works for classes with missing field types
- Improved serialization performance
- OffheapMap API enhancements; compatibility with newer JDKs
- Configure scheduling policy for thread pools
- Fixed
byte[]
<->long
conversion
1.3.1
1.3.0
- SSL improvements: RDRAND, PEER_CERTIFICATE_CHAIN, autoupdate certificates
- Extended Perf Events API, including PEBS
- Garbage free thread safe date utilities; high performance date formatter
- Serialization: collection type evolution; better JSON support
- PROXY protocol support for RPC server
- Configurable
DigestStream
Thread.onSpinWait
bridge- Custom collection converters for
ConfigParser
- HttpClient fixes
- Utility class to invoke HotSpot diagnostic commands
CustomThreadFactory
for creating named/daemon/batch threadsRpcStream
memory optimizationssetAffinity
/getAffinity
for machines with more than 64 CPUs- AF_UNIX socket support. Refactored InetAddress handling
- systemd-notify API
1.2.0
- Updated SSL API. Client certificate inspection support
SerializedWrapper
for transfering pre-serialized objects- Http server returns "400 Bad Request" if fails to parse parameters
- Getters for all socket options
- Synchronous
Server.start
- Java wrappers for
setpriority
/getpriority
(thread niceness) HttpClient
invoke with timeout- Support for connected UDP Java socket
- Java API for perf events on Linux
- Serialization bugfixes
ConnectionString
recognizes well-known portsConfigParser
enhancements- Fixed compatibility issues with JDK 11. Get rid of
tools.jar
dependency