| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| 0.42.65 source code.tar.gz | 2026-07-22 | 4.8 MB | |
| 0.42.65 source code.zip | 2026-07-22 | 8.3 MB | |
| README.md | 2026-07-22 | 8.2 kB | |
| Totals: 3 Items | 13.1 MB | 0 | |
This is a minor maintenance release appropriate for all ServiceTalk users. This release contains a larger than usual number of behavior changes — please review that section carefully before upgrading.
Changes
Behavior Changes
- https://github.com/apple/servicetalk/commit/e59e0f94347939ba056dd44ace99fe934aaf8eec - gRPC, HTTP, length-prefixed serializers: new inbound size limits for gRPC messages, aggregated HTTP payloads, and streaming length-prefixed serializer frames (4 MiB defaults) ship warn-only: oversized messages are delivered with a rate-limited log warning (naming the largest exceeding size and the owning client/server) rather than rejected (#3520, [#3564], [#3563], [#3576], [#3579]). Opt into enforcement for:
- gRPC via
maxInboundMessageSize(int)onGrpcClientBuilder/GrpcServerBuilderorio.servicetalk.grpc.netty.temporaryDefaultMaxInboundMessageSizetemporary system property;
- HTTP via
maxAggregatedPayloadSize(int)onSingleAddressHttpClientBuilder/HttpServerBuilderorio.servicetalk.http.netty.temporaryDefaultMaxAggregatedPayloadSizetemporary system property;
FixedLengthStreamingSerializer/VarIntLengthStreamingSerializervia new 3-arg constructors orio.servicetalk.serializer.utils.temporaryDefaultMaxMessageSizetemporary system property;
- https://github.com/apple/servicetalk/commit/e6ae35e84a6e0acb23493f86bc02325b0d2611e2 - http-api: HTTP header values are now validated by default, matching existing header-name validation (#3528).
- Roll back via
io.servicetalk.http.api.temporaryDefaultValidateHeaderValues=falsetemporary system property; - https://github.com/apple/servicetalk/commit/bfcdc784391284a461c21c5813edd315f2e707d1 - buffer-api:
ReadOnlyBufferAllocators.wrap(byte[], int, int)/wrap(ByteBuffer)now normalize the returnedBuffer's coordinates to start at index0; callers indexing off the originalByteBuffer's absolute position must update their offsets (#3560)
Security Fixes
- https://github.com/apple/servicetalk/commit/56b8ccf1c16d0f06bd8e958dd13a61be84fd3225 - http-netty: default server HTTP/2
MAX_CONCURRENT_STREAMSdropped fromInteger.MAX_VALUEto100to reduce DoS exposure (#3485). - Configure via
H2ProtocolConfigBuilder#initialSettings(Http2Settings)+Http2SettingsBuilder#maxConcurrentStreams(long)orio.servicetalk.http.netty.defaultH2ServerMaxConcurrentStreamssystem property;
- https://github.com/apple/servicetalk/commit/048b6c334a08ee90dd20c4f66703745654f58fe7 - http-netty: reject HTTP/1.x request-targets containing raw control characters during encoding, instead of producing malformed request lines (#3527)
- https://github.com/apple/servicetalk/commit/1507c67093c1f699b20a7d948439d34912dc3d6e - http-netty: stricter HTTP/1.1
Transfer-Encodinghandling per RFC 9112: versions other than HTTP/1.1 or malformedchunkedorderings are now rejected instead of silently accepted. No opt-out (#3509) - https://github.com/apple/servicetalk/commit/09dc52b671d71c9dbfba2ee84b4115331c733dd6 - http-netty: sensitive headers (
Authorization,Cookie,Set-Cookie,Proxy-Authorization) are no longer stored in the HTTP/2 HPACK dynamic table (#3524) - https://github.com/apple/servicetalk/commit/b5e07525cc20ba08d08440421e4fe40ef1d3950c - http-netty: re-apply HTTP/2 RST and empty-frame decoder guards, which were being silently dropped on every HTTP/2 connection (#3532)
- https://github.com/apple/servicetalk/commit/0d94e80cc74429af4cc8b036c513cf0d7e196f4c - http-netty: cap HTTP/1.1 chunk sizes at
Integer.MAX_VALUEinstead of misparsing larger values (#3508) - https://github.com/apple/servicetalk/commit/4d5cfc2a8ea4f2a89c3dcdf2415ab8c1b06aa7d3 - http-security-jersey: fix fail-open
BasicAuthJersey filter that could silently let unauthenticated requests through (#3546)
New Features
- https://github.com/apple/servicetalk/commit/3efc0f4f86e4038b35e5badcc805ba82aa72553a - http: add support for TLS to an HTTP CONNECT proxy, enabling two layered TLS sessions (#3492, [#3500])
- https://github.com/apple/servicetalk/commit/5593bcaf77979c4d0b6233742b3deb8cea4e287f - dns-discovery-netty: add
DnsServiceDiscovererObservers.combine/unpack(...)utilities (#3552) - https://github.com/apple/servicetalk/commit/bc9208d86f3129e3d13de7ce9e08be451e30715c - transport-api: add
TransportObservers.unpack(...)utility (#3547) - https://github.com/apple/servicetalk/commit/3ea54df4aac89dabfe2b5070893e2c4d282492ac - loadbalancer: add a system property to configure the default
LoadBalancingPolicy(#3542) io.servicetalk.loadbalancer.defaultLoadBalancingPolicysystem property that acceptsround-robinorp2cvalues.
Bug Fixes
- https://github.com/apple/servicetalk/commit/6acca5a296dc1646cfbc3d66cd60ad9e7b095c33 - buffer-api: fix
Buffer.getUnsignedShort()returning incorrect values for shorts with any of the upper 4 bits set (#3554) - https://github.com/apple/servicetalk/commit/186e6750251199fedd312e23ba6b27792d9dda13 - buffer-api: reject negative readable-byte counts (e.g.
skipBytes(-1)) instead of silently movingreaderIndexbackward (#3557) - https://github.com/apple/servicetalk/commit/da4c21fbfb262a8d7e5c415bf6a4d16b4476ff03 - buffer-api: fix zero-length
BufferInputStreamreads (#3558) - https://github.com/apple/servicetalk/commit/94bcd0c41c7184995fa44cca498f1e1a687a063e - concurrent-api:
BlockingUtilsrestores the thread interrupt flag inblockingInvocationoverloads (#3572) - https://github.com/apple/servicetalk/commit/d70f49e0ec0a8a27f954da8d71f1ad8f2a2d13ec - dns-discovery-netty: clear min TTL state for removed SRV targets (#3529)
- https://github.com/apple/servicetalk/commit/11dbb79816fc80f06585f981be730dc4b7cfc03a - grpc-api: fix client serializer-cache collision that could throw
ClassCastExceptionacross message types sharing a compression codec (#3568) - https://github.com/apple/servicetalk/commit/0b10ea850661fbc860933dd96ddb38b3d2b2af99 - http-netty: 304 responses no longer have
Transfer-Encodingauto-added, matching RFC 9110 (#3495) - https://github.com/apple/servicetalk/commit/e346cc708f33c990a7098e66a5c65f965f75e5db - http-netty: fix dropped request payload body when an h2-preferring client's connection ALPN-negotiates down to HTTP/1.1 (#3571)
- https://github.com/apple/servicetalk/commit/6f5bee3eda13ea6841204535d536437b2c6d1379 - loadbalancer: fix weighted P2C second-candidate selection bias toward host index 0 (#3543)
- https://github.com/apple/servicetalk/commit/91a56b15986ac8d8ae4f3fa75f9cf402b0f7ce18 - loadbalancer: an
EXPIREDhost is no longer resurrected toACTIVEby a connection that was in-flight when the expiry occurred (#3545) - https://github.com/apple/servicetalk/commit/75b054021562ebd03bfd71e4779ccd78d2ec8df1 - loadbalancer: fix success-rate outlier detector never ejecting when failure-percentage detection is also enabled (#3550)
- https://github.com/apple/servicetalk/commit/637fba69c6adcab7189dcb9a2a6cc0aaaaec40c4 - loadbalancer: exclude low-volume/idle hosts from outlier detection statistics, matching Envoy (#3551)
- https://github.com/apple/servicetalk/commit/0700a79685ce59dc635526cc82e25b7523cfe81d - loadbalancer: make
XdsOutlierDetectorfailure-multiplier decay deterministic (#3556)
Improvements
- https://github.com/apple/servicetalk/commit/81859e848aa8c74f4e56ca5b6f091d14e82e019d - http-netty: more SSL cache improvements to honor hostname validation while maximizing cache hits (#3490)
Dependencies
- https://github.com/apple/servicetalk/commit/5117e3322efc496f413ec3e38ec2f4d1b8f57fe9 - Update Netty 4.1.133 -> 4.1.136 (#3494, [#3502], [#3562])
- https://github.com/apple/servicetalk/commit/71f0dbc74ef9cac6510d076de4006cf6ccd16bd7 - Upgrade OpenTelemetry SDK to 1.59.0 (#3489)
Thank you
Every idea, review, and bug-report counts and so we thought it is worth mentioning those who helped in this area. Please report any unintended omission.
@bryce-anderson @chrisvest @colestanfield @miroswan @idelpivnitskiy @igavrysh @daschl @fallintoplace @Nadav0077 @LeSingh1