v1.49.1
All
Update protobuf to v21.6 on 1.49.x.
v1.49.0
Core
Backport: "stabilize the C2P resolver URI scheme" to v1.49.x.
Bump core version.
Update OpenCensus to HEAD.
Update protobuf submodule to 3.21.5.
Update third_party/protobuf to 3.21.4.
[core] Remove GRPC_INITIAL_METADATA_CORKED flag.
HTTP2: Fix keepalive time throttling.
Use AnyInvocable in EventEngine APIs.
Python
Support Python 3.11
Add type stub generation support to grpcio-tools.
This release contains refinements, improvements, and bug fixes, with highlights listed below.
Core
Upgrade Abseil to LTS 20220623.0 . (#30155)
Call: Send cancel op down the stack even when no ops are sent. (#30004)
FreeBSD system roots implementation. (#29436)
xDS: Workaround to get gRPC clients working with istio. (#29841)
Python
Set Correct Platform Tag in Wheels on Mac OS with Python 3.10. (#29857)
[Aio] Ensure Core channel closes when deallocated. (#29797)
[Aio] Fix the wait_for_termination return value. (#29795)
Ruby
Make the gem build on TruffleRuby. (#27660)
Support for prebuilt Ruby binary on x64-mingw-ucrt platform. (#29684)
[Ruby] Add ruby_abi_version to exported symbols. (#28976)
Objective-C
First developer preview of XCFramework binary distribution via Cocoapod (#28749).
This brings in significant speed up to local compile time and includes support for Apple Silicon build.
The following binary pods are made available for ObjC V1 & V2 API
gRPC-XCFramework (source pod gRPC)
gRPC-ProtoRPC-XCFramework (source pod gRPC-ProtoRPC)
The following platforms and architectures are included
ios: armv7, arm64 for device. arm64, i386, x86_64 for simulator
macos: x86_64 (Intel), arm64 (Apple Silicon)
Release v1.47.0 Latest
For gRPC documentation, see grpc.io. For previous releases, see Releases.
This release contains refinements, improvements, and bug fixes, with highlights listed below.
Announcement
gRPC C++ 1.47.0 is the first release requiring C++14 (proposal). For those who cannot upgrade to C++14 right now, you can use gRPC C++ 1.46.x in the meantime and gRPC C++ 1.46.x will be maintained by having fixes for critical bugs (P0) and security fixes until 2023-06-01.
Core
xDS: Workaround to get gRPC clients working with istio
Bump core version to 25.0.0 for upcoming release.
Initial support for Haiku.
Add NetBSD support (Community-supported).
server: per-rpc backend metric reporting.
Remove C# implementation (individual packages will continue to be maintained through v2.46.x patches or moved to grpc-dotnet).
C++
Expose NoOpCertificateVerifier to C++.
RouteGuide example: Abort if database file not found.
C#
C#: Suppress CS8981 in generated source.
Python
Set Correct Platform Tag in Wheels on Mac OS with Python 3.10
Removed manylinux2010 python artifacts.
Allow grpcio to be built against system abseil-cpp.
[Python] Add an UDS example.
Ruby
Backport "Support for prebuilt Ruby binary on x64-mingw-ucrt platform
Upgrade ruby rake-compiler-dock images (and stop building ruby gem artifacts on mac, in favor of rake-compile-dock darwin builds).
Other
Downgrade io_bazel_rules_go to v0.27.0 restore Bazel 3.x support.
Release v1.46.1
This release contains refinements, improvements, and bug fixes.
Release v1.46.0
Core
Ignore Connection Aborted errors on accept.
Filter content-length metadata from the application.
RetryFilter: Cleanup pending byte stream.
HTTP Proxy: Ignore empty entry in no_proxy list.
Adding http/1.1 support in httpcli.
HTTP2: Initiate write for acknowledging SETTINGS frame.
Change the unsupported polling strategy log for forking to GPR_INFO.
Handle SSL_ERROR_WANT_WRITE error.
TCP Async Connect: Fix Heap use-after-free.
HTTP2: Add graceful goaway.
Remove epollex poller.
TlsCredentials: Comparator implementation.
Decrease verbosity of alts handshaker logs which can happen during cancellation.
HTTP2: Should not run cancelling logic on servers when receiving GOAWAY.
HTTP2: Don't throttle pings from the server.
Include ADS stream error in XDS error updates.
Remove idempotent/cacheable requests.
C++
Add bazel cpp distribtest for grpc_cc_library.
C#
Add support for grpc-dotnet in GKE benchmarks.
Sync unary call after shutdown: Add a repro and fix for 19090.
Remove C# Legacy (a.k.a. "Classic") csproj example.
Python
Add Python GCF Distribtest.
Add Python Reflection Client.
Revert "Fix prefork handler register's default behavior".
Fix prefork handler register's default behavior.
Fix fetching CXX variable in setup.py.
Ruby
Support pre-built binaries for Ruby 3.1.
Make sure to always receive initial metadata in ruby.
Release v1.44.0
Core
xDS: Rbac filter updates
Fix xDS client for multiple watchers.
bump C-core version for upcoming release.
Add a trace to list which filters are contained in a channel stack.
Remove grpc_httpcli_context.
xDS: Add support for RBAC HTTP filter.
API to cancel grpc_resolve_address.
Replace work serializer with a mutex in c-ares resolver.
xDS: Add graceful shutdown for old connections on listener resource update.
C++
Promote ClientContext::set_wait_for_ready to be non-experimental.
Python
Add python async example for hellostreamingworld using generator.
Disable __wrap_memcpy hack for Python builds.
Bump Bazel Python Cython dependency to 0.29.26.
Fix libatomic linking on Raspberry Pi OS Bullseye.
Allow generated proto sources in remote repositories for py_proto_library.
Release v1.42.0
Core
Update RDS parsing for use on servers.
Upgrade Abseil to LTS 20210324, Patch 2.
Upgrade bazel to 4.2.1 (LTS), upgrade bazel toolchain to 4.1.0.
Remove old backwards compatibility cronet compression workaround code.
EventEngine Test Suite: Timers.
EventEngine::Closure.
OpenCensusCallTracer: Move context generation to StartTransportStreamOpBatch.
Fix client idle filter.
allow connectivity state watching to work on lame channels.
grpclb: implement subchannel caching.
xds: change CSDS to populate new generic_xds_configs field.
C++
Describe support-levels for undocumented supported platforms.
C#
Fix link error when building app with Xamarin.iOS.
C#: metadata.Get and GetAll should accept uppercase keys.
Fix use-after-free metadata corruption in C# when receiving response headers for streaming response calls.
Objective-C
[objc] GRPCErrorCode enum base type to int32_t.
[objc] Adding lightweight generic to GPRCCallOptions's initialMetadata prop .
[objc] GRPCMetadataDictionary convenient typedef.
[objc] Switch to proto forward declare for gRPC codegen plugin.
Python
Add Aspects to Bazel py_proto_library and py_grpc_library Rules.
[Aio] Add add_done_callback/done/cancelled methods to ServicerContext.
[Aio] Correct the typing of input metadata.
Address leak when using request stream interceptors
Catch ExecuteBatchError in _consume_request_iterator.
[Aio] Resolve deprecated warnings from asyncio.
Create Bazel gevent test harness.
Add python_requires >=3.6 to grpcio-* packages.
fix: use == instead of is when comparing with a certain types of literals.
python: fix type annotation for the _metadata field.
Ruby
ruby: add arm64 darwin support.
ruby: build native Darwin gems using rake-compiler-dock.
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
Not committed (merge conflicts...):
net/radsecproxy/distinfo
The following distfiles could not be fetched (fetched conditionally?):
./net/citrix_ica/distinfo citrix_ica-10.6.115659/en.linuxx86.tar.gz
./net/djbdns/distinfo dnscache-1.05-multiple-ip.patch
./net/djbdns/distinfo djbdns-1.05-test28.diff.xz
./net/djbdns/distinfo djbdns-1.05-ignoreip2.patch
./net/djbdns/distinfo djbdns-1.05-multiip.diff
./net/djbdns/distinfo djbdns-cachestats.patch
Release v1.41.0
This release contains refinements, improvements, and bug fixes, with highlights listed below.
Core
De-experimentalize XdsCredentials and XdsServerCredentials API.
xDS: Remove environmental variable guard for security.
xDS Security: Use new way to fetch certificate provider plugin instance config.
xDS server serving status: Use a struct to allow more fields to be added in the future.
Annotate impl/codegen with IWYU pragmas.
Update submodule envoy-api to origin/main.
Upgrade third_party/protobuf to v3.17.3.
update submodule boringssl-with-bazel with origin/master-with-bazel.
Delete libuv-iomgr implementation and GRPC_UV build option.
Allow access to Google API regional endpoints via Google Default Credentials.
Remove GPR_*_TLS macros except PTHREAD.
Limit initial window size increases and per-stream window delta.
C++
Bump version to v1.41.0-pre1.
De-experimentalize XdsServerBuilder.
C++ opencensus filter: Fix point of creating context for overall call.
Flag grpc++_test library testonly.
Add note on officially supported platforms.
Open census call attempt span name and attribute changes
Open census call attempt span name and attribute changes.
C#
Backport 27382 to v1.41.x.
[csharp] Fix error loading library grpc_csharp_ext.*.dll on windows with non-ASCII encoding.
Annotate copied Content native lib items with package id to enable customization.
Objective-C
Objective-C: Fix issue with creating a Unix file socket.
Python
Use manylinux_2_17 instead of manylinux_2_24 tag for manylinux2014 aarch64 wheels.
Add Python 3.10 drop 3.5.
[Aio] Remove custom IO manager support.
Release v1.40.0
Core
Update Envoy API to the latest version (2021-07-30).
Enable retries by default.
Add opentelemetry as a submodule for latest xDS API.
Pointing the protobuf submodule to the new URL.
Remove BUILD.gn.
Prevent race causing early-destruction of grpc_winsocket object when creating a TCP connection.
TLS Security Connector: Add an always-fail-handshaker when certificates are not ready.
Enable layering checks in the Bazel build.
Support user provided "scope" in JWT and GDC.
C++
C++ opencensus filter: Fix point of creating context for overall call.
Open census call attempt span name and attribute changes
Open census filter: Use new internal stats API and record retry stats.
Add OpenCensus measures and views for retries.
Python
Add retry example for gRPC Python.
Remove Python 2.7 binary wheel generations.
[Aio][fix] catch application exception in request iterators.
Release v1.39.0
This release contains refinements, improvements, and bug fixes, with highlights listed below.
Core
Initialize tcp_posix for CFStream when needed.
Update boringssl submodule.
Fix backup poller races.
I am back.
Use default port 443 in HTTP CONNECT request.
C++
New iomgr implementation backed by the EventEngine API.
async_unary_call: add a Destroy method, called by std::default_delete.
De-experimentalize C++ callback API.
C#
[C#] Add ChannelCredentials.SecureSsl property for better codecompletion with ChannelCredentials.
Better way of building protoc aarch64 artifacts.
Add C# plugin "file_suffix" option defaulting to "Grpc.cs".
Add "GeneratedCode" attribute to generated service stubs.
PHP
PHP: stop reading composer.json file just to read the version string.
Python
Python AIO: Match continuation typing on Interceptors.
Workaround 26279 by publishing manylinux_2_24 wheels instead of manylinux2014 on aarch64.
Fix zlib unistd.h import problem.
Handle gevent exception in gevent poller.
Ruby
Set XDS user agent in ruby via macros.
Release v1.38.0
Core
Invalidate ExecCtx now before computing timeouts in all repeating timer events using a WorkSerializer or combiner.
Fix use-after-unref bug in fault_injection_filter.
Fix 25897 to avoid crashes when certificates are not yet updated.
gRPC EventEngine Interface.
Allow the AWS_DEFAULT_REGION environment variable.
C++
s/OnServingStatusChange/OnServingStatusUpdate.
cmake: only install channelz if gRPC_USE_PROTO_LITE is off.
C#
Grpc.Tools: Use x64 protoc on macOS arm64.
Provide runtime/framework info in gRPC C# user agent string.
Python
Add grpcio-admin Python package.
Add CSDS API to Python.
Expose code and details from context on the server side.
Explicitly import importlib.abc; required on Python 3.10.
Fix potential deadlock on the GIL in AuthMetdataPlugin.
Introduce new Python package "xds_protos".
also build python3.6 aarch64 manylinux2014 wheel.
Remove async mark for set_trailing_metadata interface.
Ruby
ruby: use x86_64 binary on M1 macs.
Add ruby 3.0 support for mac binary packages.
Release v1.37.0
This release contains refinements, improvements, and bug fixes, with highlights listed below.
Core
Bump up minimum supported clang to 4.0.
Use URI form of address for channelz listen node.
Implementation CSDS (xDS Config Dump).
Don't assume that c-ares won't retry failed writes in grpc_core::GrpcPolledFdWindows::SendVUDP.
Fix an infinite read loop with SRV record resolution on windows.
xDS status notifier.
Remove CAS loops in global subchannel pool and simplify subchannel refcounting.
Add missing security field to channelz Socket.
Disable check_call_host when server_verification_option is not GRPC_TLS_SERVER_VERIFICATION.
C++
Remove fault injection environmental variable guard.
Implement C++ Admin Interface API.
cmake: Reflect minor version change in SONAME for C++ and C#.
xDS Client-Side Fault Injection.
Python
use boringssl asm optimizations in aarch64 wheel source build.
Clarify Guarantees about grpc.Future Interface.
Use crosscompilation to build python armv7 wheels.
[Aio] Add time_remaining method to ServicerContext.
Standardize all environment variable boolean configuration in python's setup.py.
Crosscompile python aarch64 wheels with dockcross.
Fix Signal Safety Issue.
Release v1.36.0
Core
Remove unnecessary internal pollset set in c-ares DNS resolver.
Fix implicit declaration error in zlib + macOS.
Support Default Root Certs in Tls Credentials.
C++
Move third party identity C++ api out of experimental namespace.
refactor!: change error_details functions to templates.
Support ServerContext for callback API.
Python
Implement Python Client and Server xDS Creds.
Release 1.35.0
For gRPC documentation, see grpc.io. For previous releases, see Releases.
This release contains refinements, improvements, and bug fixes, with highlights listed below.
Core
Backport "Fix implicit declaration error in zlib + macOS".
xDS features doc update for case insensitive prefix/full path matching.
Add darwin_arm64 and darwin_arm64e to c-ares config settings.
Add FileWatcher CertificateProvider.
Protect xds security code with the environment variable "GRPC_XDS_EXPERIMENTAL_SECURITY_SUPPORT".
C++
Upgrade bazel to 3.7.1 (repository-wide).
Makefile: remove support for building protobuf, C++ libraries and executables.
C#
fix nuget package signing on Linux (do not use PublicSign=true on non-windows).
Remove C# as a supported language for xDS features.
Fix C# native library loading in .NET 5 single-file apps.
Python
Fix visibility of libprotobuf symbols in protoc_compiler.so on Mac.
[Aio] Correct type annotation of grpc.aio.ServicerContext.abort.
Add limit concurrent RPC feature to asyncio server.
[Aio] Fix the emtpy response handling in streaming RPC.
[Backport] Implement grpc.Future interface in SingleThreadedRendezvous.
[Backport] Make Python 2 an optional dependency for Bazel build.
Ruby
Fix implicit decalaration in rb_event_thread.c.
Base the ruby build off of latest rake-compiler-dock/manylinux14 images, add ruby 3.0 binary packages.
Ruby: add support to circuit_breaking xds interop test case.
Binary packages (for example, grpc-1.35.0-x86_64-linux.gem):
Are now compatible with ruby 3.0
Are now built off of manylinux14 (we no longer support Centos 6)
Release v1.34.1
This is release 1.34.1 (gauntlet) of gRPC Core.
For gRPC documentation, see grpc.io. For previous releases, see Releases.
This release is a patch specifically for Python and C#, which adds three backported PRs:
Backport "Fix visibility of libprotobuf symbols in protoc_compiler.so on Mac" to 1.34.x
Backport "Lazily import grpc_tools when using runtime stub/message generation" to 1.34.x
Backport "do not use <PublicSign>true</PublicSign> on non-windows" to 1.34.x
1.34.0:
Incur setuptools as an dependency for grpcio_tools.
Stop the spamming log generated by ctrl-c for AsyncIO server.
[gRPC Easy] Make Well-Known Types Available to Runtime Protos.
Bump MACOSX_DEPLOYMENT_TARGET to 10.10 for Python.
Make Python 2 an optional dependency for Bazel build.
[Linux] [macOS] Support pre-compiled Python 3.9 wheels.
Release v1.33.2
Please see the notes for the previous releases here: https://github.com/grpc/grpc/releases. Please consult https://grpc.io/ for all
information regarding this product.
This release contains refinements, improvements, and bug fixes, with highlights listed below.
Core
Deprecate GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS.
Expose Cronet error message to the application layer.
Remove grpc_channel_ping from surface API.
Do not send BDP pings if there is no receive side activity.
C++
Makefile: only support building deps from submodule.
C#
Add trimming attribute to BindServiceMethodAttribute.
Fix incremental build of csproj projects depending on grpc.
Python
[Backport] Implement grpc.Future interface in SingleThreadedRendezvous.
[Backport] Make Python 2 an optional dependency for Bazel build.
Allow asyncio API to be imported as grpc.aio.
[gRPC Easy] Fix import errors on Windows.
Make version check for importlib.abc in grpcio-tools more stringent.
Release v1.33.1
This release contains refinements, improvements, and bug fixes, with highlights listed below.
Core
Deprecate GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS.
Expose Cronet error message to the application layer.
Remove grpc_channel_ping from surface API.
Do not send BDP pings if there is no receive side activity.
C++
Makefile: only support building deps from submodule.
C#
Add trimming attribute to BindServiceMethodAttribute.
Fix incremental build of csproj projects depending on grpc.
Python
[Backport] Make Python 2 an optional dependency for Bazel build.
Allow asyncio API to be imported as grpc.aio.
[gRPC Easy] Fix import errors on Windows.
Make version check for importlib.abc in grpcio-tools more stringent.
Release v1.32.0
This release contains refinements, improvements, and bug fixes, with highlights listed below.
Core
Remove stream from stalled lists on remove_stream.
Do not cancel RPC if send metadata size if larger than peer's limit.
Don't consider receiving non-OK status as an error for HTTP2.
Keepalive throttling.
Include the target_uri in "target uri is not valid" error messages.
Fix "cannot send compressed message large than 1024B" in cronet_transport.
Receive SETTINGS frame on clients before declaring subchannel READY.
Enabled GPR_ABSEIL_SYNC.
Experimental xDS v3 support.
C++
Upgrade bazel used for all tests to 2.2.0.
Remove test targets and test helper libraries from Makefile.
Fix repeated builds broken by re2's cmake.
Log the peer address of grpc_cli CallMethod RPCs to stderr.
Python
[gRPC Easy] GA: This release enables runtime import of .proto Files. (gRFC, PR) Together with support for simple stubs present since 1.29, this completes gRPC Easy. To start using these features, take a look at the example. If using simple stubs without runtime proto import, generated code must be regenerated with an up-to-date version of the grpcio-tools package.
[Aio] Graduation from experimental folder.
[Aio] Prevent call objects from outliving its parent channel or server.
[Aio] Add a fail-back polling mode for Windows+3.8+.
Raises an exception when port binding failed.
Implement compute_engine_channel_credentials in Python.
Fix bazel out directory when using external repo.
Release v1.31.0
Core
The following new xDS functionality is added in this release:
Requests matching based on path (prefix, full path and safe regex) and headers.
Requests routing to multiple clusters based on weights.
The features supported in a given release are documented here.
Other changes:
Remove MAX_EPOLL_EVENTS_HANDLED_EACH_POLL_CALL to ensure timely processing of events.
Include the target name in top-level DNS error messages.
Remove xds-experimental URI scheme.
fix memory leak of grpc_resource_user_quota.
Store ref to the ExternalConnectivityWatcher in external_watchers_ map.
Update grpclb configuration with field "service_name".
Fix possible deadlock in RemoveExternalConnectivityWatcher.
Enable TLS 1.3 in the C-core and all wrapped languages.
Add message-size check before message decompression with ordering change.
Fix race condition caused by simultaneous updates on SSL server handshaker.
Add missing reset for ping clocks to avoid mistakenly sending GOAWAY frames due to 'too_many_pings'.
C++
Simplify makefile: Get rid of "install" rules with pure make, recommend cmake and bazel instead.
Replaced grpc::string with std::string.
Fix wrong version in gRPCConfigVersion.cmake and grpc++*.pc.
Python
[Aio] Support tuple and aio.Metadata interaction.
[Aio] Allows poller to bind to ephemeral loops in multiple threads.
[Aio] Hide init_grpc_aio and guard async API outside of AsyncIO context.
[Aio] Implement methods to access auth context and peer info.
Add protobuf as an "extras" dependency to grpcio package.
[Aio] Use Metadata type.
Avoid attribute error in del of _ChannelCallState.
Default wait_for_ready to True in simple stubs.
Propagate contextvars to auxiliary threads.
Simplify channel credentials in simple stubs.
Release v1.30.1
This release is a patch specifically for the Ruby bindings
Release v1.30.0
Core
This release adds an xDS URI scheme called xds. This is the stable version of the scheme xds-experimental that was introduced in v1.28.0. xds-experimental scheme will be removed in subsequent releases so you must switch to xds scheme instead. xds scheme is a client side implementation of xDSv2 APIs. This allows a gRPC client written in C++, Python, Ruby, PHP and C# to receive configuration from an xDSv2 API compatible server and use that configuration to load balance RPCs. In this release, only the virtual host matching, default path (“” or “/”) matching and cluster route action are supported. The features supported in a given release are documented here.
Remove unnamed typedef structs in src/core.
Support xDS via both xds and xds-experimental URI schemes.
Fix sorting of gRPCLB addresses when resolved via DNS.
Support local creds in grpc_cli.
Add some additional delay when sending pings without there being activity on receive side.
Added GRPC_TSAN_SUPPRESSED and GRPC_ASAN_SUPPRESSED.
Fail decompression when the gzip trailer is missing.
Include source address in tcp posix async connect errors.
Fix HTTP status conversion inconsistencies.
Add GRPC_ARG_HTTP_PROXY channel argument.
Include the query type and name in all c-ares DNS error messages.
Include the destination address in synchronous TCP connect errors.
Use aligned calculation to determine transport stream from call data.
Fixing bug with END_STREAM if header has continuations.
Fail writes when End of stream has been received.
C++
Fix missing include for std::string.
Don't override cmake cxx standard when already set by the user.
Grpc.Tools: Fix cpp paths in tools to match actual codegen.
TlsCredentialsOption API optimization.
Fixed MinGW 7.3.0 shared library compile and link issues.
Fix interceptor batch method FailHijackedRecvMessage for async APIs.
Python
Add Aio stream stream client interceptor support.
[Aio] Add AsyncIO support for Channelz.
Stop memory leak when Python channel is deallocated without invoking "close".
Expose ALTS client/server credentials in Python API.
[Aio] Stream Unary client interceptor.
[Aio] Make sync handlers runnable in AsyncIO server.
[Aio] Add AsyncIO support to grpcio-status.
[Aio] Implement the Unary Stream client interceptor.
Release v1.29.1
PHP
PHP: Fix include path for boringssl in windows build
Objective-C
--grpc_out: protoc-gen-grpc: Plugin killed by signal 6.
Release v1.29.0
Core
Move decompression into gRPC Core.
Introduce CFRunLoop based iomgr.
Add option for logging keepalive pings.
Clamp the receive flow control window size to ((1 << 31) - 1).
CallCredentials debug string API.
C++
Append to CMAKE_MODULE_PATH instead of replacing it.
Clean way to enable C and C++ standards in cmake.
Autogenerate build.yaml equivalent from bazel BUILD metadata (with bazel query xml).
Release v1.28.1
This release is a patch specifically for the Python bindings to address 22546.
Python
Backport 22549 to 1.28 (Only load simple stubs code on 3.6+ interpreters).
Release v1.28.0
This release contains refinements, improvements, and bug fixes, with highlights listed below.
Core
feat: add x-goog-user-project header from quota_project_id field.
Reintroduce 21527 (boringssl submodule unification - take two).
Reintroduce 21527 (boringssl submodule unification).
Treat an empty http_proxy mean "Don't use proxy" and skip parsing it.
C++
This release adds an experimental client side implementation of xDSv2 APIs. This allows a gRPC client written in C++ to receive configuration from an xDSv2 API compatible server and use that configuration to load balance RPCs. In this release, only the virtual host matching and cluster route action is supported. More features will be added in future.
Cherrypick 22147: xds: send no-overprovisioning client capability and populate user_agent fields.
Fix regression in MSVC runtime flag.
Unify boringssl submodules and use non-developer boringssl cmake build.
Objective-C
Fix ObjC memory consumption increase as app runs.
Python
Backport Simple Stubs Codegen to 1.28.
[Aio] Generate gRPC AsyncIO API Reference.
Experimental: Implement Top-Level Invocation Functions Not Requiring an Explicit Channel.
[Aio] Implement health checking servicer in AsyncIO.
[Aio] Prohibit mixing two styles of API on client side.
[Aio] Add channel_ready helper function.
[Aio] Support compression for both client and server.
[Aio] Close ongoing calls when the channel is closed.
[Aio] Fix the server credentials & improve socket implementation.
[Aio] Support wait-for-ready mechanism.
[Aio] Fix the windows build failure.
Stop building manylinux1 images.
[Aio] Move status and initial metadata handling to Cython.
Ruby
Backport to 1.28.x: add ruby 2.7 to mac binary pkgs.
Add ruby-2.7 to build process of binary gems for Windows and Linux.
Release v1.26.0
This release contains refinements, improvements, and bug fixes, with highlights listed below.
Core
Fix compression filter crash on empty payload.
Ensure awake pollset_work threads exist on Windows.
Disable client_idle_filter.
Remove gpr_get/set_allocation_functions.
Security audit response.
C++
Automatically disable testing frameworks if gRPC_BUILD_TESTS=OFF.
Do not build channelz when gRPC_USE_PROTO_LITE.
Add options for all codegen plugins.
gRPC-C++ podspec follows gRPC versioning.
Issue 19208: Fix pollset_set_del_fd to cleanup all fd references.
De-duplicate .proto file processing.
cmake: Add VERSION and SOVERSION properties to libraries.
Python
Release Python3.8 wheels for Windows.
Release Python3.8 wheel on macOS.
Fix issue with exception being out of scope in Python 3.
[AIO] Implement the shutdown process for AIO server and completion queue.
Attempt to drop support for Python 3.4.
AIO Unified call interface.
Make sure Core aware of gevent Cython objects.
[bazel] Add an ability to call an optional custom plugin for py_proto_library and py_grpc_library.
Release v1.25.0
Core
Change RR to consider a subchannel in TF if it has failed since it was READY.
Fix a use after free in c-ares on Windows.
C++
Honor CARES_ROOT_DIR.
Make cmake grpc.pc depend on openssl too.
Create pkg-config files from CMake.
Add C++ wrapper for SPIFFE credentials v2.
Upgrade bazel to 0.29.1.
Python
Add experimental option to run unary-stream RPCs on a single Python thread.
[AIO] Minimal AsyncIO Server.
Switch to concrete classes in experimental asyncio.
Add manylinux2010_x86 wheels into artifacts.
Release 3.8 binary wheels.
Make grpc_testing's Servicer context abort method stop execution of the servicer handler.
Build Python wheels with tag manylinux2010.
Add experimental support for asyncio unary client.
1.24.3
Add strip_prefix to python protoc plugin and py_grpc_library.
Switch py_proto_library from using src to deps to conform with google3.
Expose local credentials on Python layer.
Make default vtable for pointer argument a constant.
Gracefully handle errors from Future object callbacks.
Gracefully handle exceptions raised by signal handlers on the main thread while unary RPCs are in flight.
Separate py_grpc_library and py_proto_library.
Add wait_for_termination method to grpc.Server.
Add Python Cancellation Example.
1.23.0:
Check call.trailing_metadata() for None before iterating it.
Add a sanity check for the Python release process.
Enforce a finite bound on the time gap between signal receipt and signal handler execution.
Python Compression Example.