Release v1.20.0
This release contains refinements, improvements, and bug fixes, with highlights listed below.
Core
Fix bug in CFStream endpoint.
Fix a NULL deref in tcp_client_windows.cc.
Avoid using grpc_core::Executor when the background poller is available.
Update the c-ares submodule to the 1.15 release.
Remove unnecessary hack which causes data races.
Fix Potentially Dangerous Typo - locked function being run outside of combiner.
Trace log the status of every c-ares lookup; cleanup error handling.
Add SPIFFE security stack to gRPC .
Nuking the poll-cv polling engine.
Backport 18201 to fix "symbol not found: _ares_library_init" error in Bazel on MacOS build.
Run run_after_write closures in h2 once write action is done.
Transition into state CONNECTING when we start name resolution.
Support "darwin_x86_64" CPU in cares.BUILD.
Move grpc_shutdown internals to a detached thread.
Fix c-ares on Windows "DNS resolution failure" triggered by logging.
Disable c-ares on Android.
C++
Global Interceptor Registration allowed only once.
cmake fix: builds disabled by CODEGEN=OFF should not be installed.
cmake: when cross-compiling, the host grpc_cpp_plugin should be used.
Release v1.19.1
Core
Backport 18201 to fix "symbol not found: _ares_library_init" error in C++ Bazel build on MacOS.
Python
Backport "Add the missing grpc_cfstream dependency" to v1.19.x.
Release v1.19.0
Core
Fix c-ares on Windows "DNS resolution failure" triggered by logging.
Disable c-ares on Android.
Ignore reserved bit in WINDOW_UPDATE frame.
Set c-ares as the default resolver.
Add period at end of metadata.google.internal to prevent unnecessary DNS lookups.
Decrease verbosity of ALTS platform check to avoid a spam log message.
Fix windows localhost address sorting bug.
Re-enable c-ares as the default resolver; but don't turn on SRV queries.
Remove filters from subchannel args.
C++
Register for cq avalanching when interceptors are going to be run.
Add a caching interceptor to the keyvaluestore example.
Enable per-channel subchannel pool.
Fix build with bazel 0.21.
Switch the default DNS resolver from native to c-ares.
Modifying semantics for GetSendMessage and GetSerializedSendMessage. Also adding ModifySendMessage.
Add interceptor methods to fail recv msg for hijacked rpcs and set recv message to nullptr on failure.
Add interceptor method to fail hijacked send messages and get status on POST_SEND_MESSAGE.
New Experimental Interception API - GetSendMessage and GetSerializedSendMessage.
C#
Upgrade System.Interactive.Async to 3.2.0.
Refactor ServerServiceDefinition and move it to Grpc.Core.Api nuget.
Allow passing null implementation to generated BindService overload using ServiceBinderBase.
Move public types needed for server implementation to Grpc.Core.Api.
Objective-C
Disable c-ares on iOS.
Added support for tvOS.
Fixing a few thread safety issues in gRPC Objective-C library.
Rolling out new API for gRPC Objective-C library.
Python
grpc_prefork(): check grpc_is_initialized before creating execctx.
[gRPC] Enable Python 3 for Bazel to Run Tests.
Escalate the failure of protoc execution.
Remove dependency of grpc.framework.foundation.callable_util.
Ruby
Disable service config resolution with c-ares by default, for now.
Ruby: refactor init/shutdown logic to avoid using atexit; fix windows.
Ruby tooling: respect user toolchain overrides.
Notable changes since 1.11.0:
- Make GrpcBuffer{Reader|Writer} Public
- Compile Out Tracers Option
- Add RpcException.StatusCode property
- gRPC stats will only be collected for debug builds or if
GRPC_COLLECT_STATS is defined.
- cmake install now also installs should also installs the roots.pem
file
Notable changes since 1.7.2:
- Requires protobuf>=3.5.0
- Exec_ctx has been made a thread_local, and is no longer to be passed
as a function parameter.
- LB policies request re-resolution without shutting down
- On server, include receiving HTTP/2 settings in handshake timeout
- C++ headers are moved from include/grpc++ to include/grpcpp. Headers
in include/grpc++ are deprecated
- Experimental gRPC-C++ Cocoapods podspec
- Several features of core have been removed from the surface or GPR
API: grpc_alarm, gpr_join_host_port, gpr_cmdline, gpr_subprocess,
gpr_tls, gpr_avl, and gpr_thd
- Add core underpinnings for TLS session ticket support
- Experimental support for configurable retries
gRPC is a modern, open source remote procedure call (RPC) framework
that can run anywhere. It enables client and server applications to
communicate transparently, and makes it easier to build connected
systems.