Important Changes:
- Update protobuf to 3.4.0
- Update netty to 4.1.16. Users will need to use netty-tcnative 2.0.6 or later.
Features:
- Provide demos for manual flow-control and back-pressure
- Beginning of support for full-stream compression (as an alternative to per-message compression). Currently only client-side decompression is implemented. This work is experimental
- io.grpc.Context now emits a SEVERE warning if it detects the length is abnormally long
- Record individual message sizes with Census/Tracing
- Allow to fallback to ServiceLoader.load without Classloader to make gRPC more OSGi friendly
- Minor memory reductions
- ManagedChannels log a warning when not properly shutdown
Bug Fixes:
- Fix GET support in OkHttp client to actually use HTTP GET. This is still considered experimental.
- Fix Bazel naming mixup with gson and opencensus. This only matters if you were passing
omit_com_google_code_gson=True
oromit_io_opencensus_api=True
togrpc_java_repositories()
(#3379) - Fix Bazel
java_grpc_library()
rule when depending on protos in external repos (#3483) - Fix transport improperly notifying Channel of its use in certain cases. This could cause spurious disconnections when
idleTimeout()
is configured on the Channel (#3374) - We now wait until all streams are closed before gracefully terminating a Netty connection. There was previously a five second timeout (#3386)
Incompatible Changes:
- Metadata entries for reserved headers are stripped (“user-agent”, “content-type”, “te”)
- InprocessChannelBuilder and InprocessServerBuilder now throw an exception when using the static constructor inherited from their base class. These didn't do what users expected, as they were actually just calling the ManagedChannelBuilder/ServerBuilder methods.