v0.13.0 Release
New and Notable:
- Support netty-tcnative-boringssl-static, which does not require OpenSSL to be installed. See SECURITY.md. The current build works but omits a warning; a fixed build is expected in a few days
- Reduce number of generated classes for services. We now generate a fixed number of classes per service
- Blocking stub now avoids the default executor of the channel. Processing is done on the blocked thread instead. This avoids a thread hop and reduces number of threads
- Reworked compression API
Context.Key
now uses instance equality, so if you reduce visibility to yourKey
you are guaranteed others can't access the value- Updated README to point to renamed Maven protoc plugin that is available on Maven Central
Other changes:
- Now depending against protobuf-3.0.0-beta-2, protobuf-nano-3.0.0-alpha-5, and netty-4.1.0.CR1
- Can now override the
Executor
for callbacks per-RPC LoadBalancer
now uses generics to no longer depend on any internal classes- Add
Metadata.keys()
for iterating over all metadata - Fix hanging RPCs caused by deadline expiring before RPC started (#1343)
- Better status for some failed RPCs
- Fixed a
ConcurrentModificationException
caused when new RPCs are being made when we transition to a freshly-connected transport - Context no longer has an internal
ScheduledExecutorService
; you must provide one when setting a deadline - Context cancellation on server-side is now more reliable
- Fix a Netty transport
ByteBuffer
leak when queued RPCs fail (#1401) - In-process transport now calls
onReady()
correctly (#875) - Mostly resolve leak due to retaining RPCs, even after they are cancelled, when connecting persistently fails (#1342)
- Fix interruption handling of blocking stubs to throw
StatusRuntimeException
instead of aRuntimeException