Skip to content

Releases: odnoklassniki/one-nio

2.0.0

19 Sep 16:11
e0d8c2c
Compare
Choose a tag to compare

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:

1.7.1

27 Jul 11:20
Compare
Choose a tag to compare
  • Rebuilt with GLIBC 2.2.5

1.7.0

13 Jul 12:30
Compare
Choose a tag to compare
  • Switch to slf4j-api for logging (#74)
  • Support new FileChannelImpl.map0() contract from JDK 19 (#75)

1.6.1

12 Jan 16:46
Compare
Choose a tag to compare
  • openssl3 support
  • BigDecimal deserialization

1.6.0

27 Nov 17:54
Compare
Choose a tag to compare
  • 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

18 Feb 23:47
Compare
Choose a tag to compare
  • JDK 17 support. Workaround setAccessible restrictions
  • New BPF map types
  • SOCK_SEQPACKET support
  • sendMsg/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

26 Jul 20:24
Compare
Choose a tag to compare
  • 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

07 Sep 15:29
Compare
Choose a tag to compare
  • Serialization of Java Records
  • DigestStream fixes

1.3.0

16 Aug 23:58
Compare
Choose a tag to compare
  • 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 threads
  • RpcStream memory optimizations
  • setAffinity/getAffinity for machines with more than 64 CPUs
  • AF_UNIX socket support. Refactored InetAddress handling
  • systemd-notify API

1.2.0

04 Sep 16:34
Compare
Choose a tag to compare
  • 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 ports
  • ConfigParser enhancements
  • Fixed compatibility issues with JDK 11. Get rid of tools.jar dependency