Swiftpack.co - Package - grpc/grpc

gRPC - An RPC library and framework

gRPC is a modern, open source, high-performance remote procedure call (RPC) framework that can run anywhere. gRPC enables client and server applications to communicate transparently, and simplifies the building of connected systems.

Join the chat at https://gitter.im/grpc/grpc

To start using gRPC

To maximize usability, gRPC supports the standard method for adding dependencies to a user's chosen language (if there is one). In most languages, the gRPC runtime comes as a package available in a user's language package manager.

For instructions on how to use the language-specific gRPC runtime for a project, please refer to these documents

  • C++: follow the instructions under the src/cpp directory
  • C#: NuGet package Grpc
  • Dart: pub package grpc
  • Go: go get google.golang.org/grpc
  • Java: Use JARs from Maven Central Repository
  • Kotlin: Use JARs from Maven Central Repository
  • Node: npm install grpc
  • Objective-C: Add gRPC-ProtoRPC dependency to podspec
  • PHP: pecl install grpc
  • Python: pip install grpcio
  • Ruby: gem install grpc
  • WebJS: follow the grpc-web instructions

Per-language quickstart guides and tutorials can be found in the documentation section on the grpc.io website. Code examples are available in the examples directory.

Precompiled bleeding-edge package builds of gRPC master branch's HEAD are uploaded daily to packages.grpc.io.

To start developing gRPC

Contributions are welcome!

Please read How to contribute which will guide you through the entire workflow of how to build the source code, how to run the tests, and how to contribute changes to the gRPC codebase. The "How to contribute" document also contains info on how the contribution process works and contains best practices for creating contributions.

Troubleshooting

Sometimes things go wrong. Please check out the Troubleshooting guide if you are experiencing issues with gRPC.

Performance

See the Performance dashboard for performance numbers of master branch daily builds.

Concepts

See gRPC Concepts

About This Repository

This repository contains source code for gRPC libraries implemented in multiple languages written on top of a shared C core library src/core.

Libraries in different languages may be in various states of development. We are seeking contributions for all of these libraries:

Language Source
Shared C [core library] src/core
C++ src/cpp
Ruby src/ruby
Python src/python
PHP src/php
C# (core library based) src/csharp
Objective-C src/objective-c
Language Source repo
Java grpc-java
Kotlin grpc-kotlin
Go grpc-go
NodeJS grpc-node
WebJS grpc-web
Dart grpc-dart
.NET (pure C# impl.) grpc-dotnet

Github

link
Stars: 28353

Used By

Total: 0

Releases

Release v1.34.0-pre1 -

This is a prerelease of gRPC Core 1.34.0 (gauntlet).

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 prerelease contains refinements, improvements, and bug fixes.

Release v1.33.2 -

This is the 1.33.2 release (geeky) of gRPC Core.

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. (#24063)
  • Expose Cronet error message to the application layer. (#24083)
  • Remove grpc_channel_ping from surface API. (#23894)
  • Do not send BDP pings if there is no receive side activity. (#22997)

C++

  • Makefile: only support building deps from submodule. (#23957)

C#

  • Add trimming attribute to BindServiceMethodAttribute. (#24217)
  • Fix incremental build of csproj projects depending on grpc. (#23391)

Python

  • [Backport] Implement grpc.Future interface in SingleThreadedRendezvous. (#24574)
  • [Backport] Make Python 2 an optional dependency for Bazel build. (#24452)
  • Allow asyncio API to be imported as grpc.aio. (#24289)
  • [gRPC Easy] Fix import errors on Windows. (#24124)
  • Make version check for importlib.abc in grpcio-tools more stringent. (#24098)

Release v1.33.1 -

This is the 1.33.1 release (geeky) of gRPC Core.

Please see the notes for the previous releases here: https://github.com/grpc/grpc/releases. Please consult https://grpc.io/ for all inform ation 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. (#24063)
  • Expose Cronet error message to the application layer. (#24083)
  • Remove grpc_channel_ping from surface API. (#23894)
  • Do not send BDP pings if there is no receive side activity. (#22997)

C++

  • Makefile: only support building deps from submodule. (#23957)

C#

  • Add trimming attribute to BindServiceMethodAttribute. (#24217)
  • Fix incremental build of csproj projects depending on grpc. (#23391)

Python

  • [Backport] Make Python 2 an optional dependency for Bazel build. (#24452)
  • Allow asyncio API to be imported as grpc.aio. (#24289)
  • [gRPC Easy] Fix import errors on Windows. (#24124)
  • Make version check for importlib.abc in grpcio-tools more stringent. (#24098)

Release v1.33.0-pre1 -

This is a prerelease of gRPC Core 1.33.0 (geeky).

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 prerelease contains refinements, improvements, and bug fixes.

Release v1.32.0 -

This is the 1.32.0 release (giggle) of gRPC Core.

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

  • Remove stream from stalled lists on remove_stream. (#23984)
  • Do not cancel RPC if send metadata size if larger than peer's limit. (#23806)
  • Don't consider receiving non-OK status as an error for HTTP2. (#19545)
  • Keepalive throttling. (#23313)
  • Include the target_uri in "target uri is not valid" error messages. (#23782)
  • Fix "cannot send compressed message large than 1024B" in cronet_transport. (#23219)
  • Receive SETTINGS frame on clients before declaring subchannel READY. (#23636)
  • Enabled GPR_ABSEIL_SYNC. (#23372)
  • Experimental xDS v3 support. (#23281)

C++

  • Upgrade bazel used for all tests to 2.2.0. (#23902)
  • Remove test targets and test helper libraries from Makefile. (#23813)
  • Fix repeated builds broken by re2's cmake. (#23587)
  • Log the peer address of grpc_cli CallMethod RPCs to stderr. (#23557)

C#

  • Use new protobuf serialization/deserialization API in C# marshallers. (#23485)
  • Change port number in examples to avoid conflict with forbidden port on windows. (#23879)
  • Fix C# server start when not all ports have been bound. (#23858)

PHP

  • PHP: avoid destroy channel more than once. (#23567)

Python

  • [gRPC Easy] GA: This release enables runtime import of .proto Files. (gRFC, PR) Together with support for simple stubs present since 1.29 (#22218, #21954), 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. (#23240)
  • [Aio] Prevent call objects from outliving its parent channel or server. (#23945)
  • [Aio] Add a fail-back polling mode for Windows+3.8+. (#23783)
  • Raises an exception when port binding failed. (#23632)
  • Implement compute_engine_channel_credentials in Python. (#23203)
  • Fix bazel out directory when using external repo. (#23633)

Ruby

  • Ruby: use absolute module name for request/response namespaces. (#23765)
  • Copy channel args hash before appending ruby user agent. (#23812)
  • Fix ruby segfault on nil optional creds params. (#23670)

Release v1.32.0-pre1 -

This is a prerelease of gRPC Core 1.32.0 (giggle).

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 prerelease contains refinements, improvements, and bug fixes.

Python

  • [gRPC Easy GA (RC1)]: This release enables runtime import of .proto Files. (gRFC, PR) Together with support for simple stubs present since 1.29 (#22218, #21954), 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.

Release v1.31.1 -

This is the 1.31.1 release (galore) of gRPC Core.

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 is a patch specifically for the Ruby bindings, which adds two backported PRs:

Release v1.31.0 -

This is the 1.31.0 release (galore) of gRPC Core.

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

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. (#23535)
  • Include the target name in top-level DNS error messages. (#23493)
  • Remove xds-experimental URI scheme. (#23463)
  • fix memory leak of grpc_resource_user_quota. (#22201)
  • Store ref to the ExternalConnectivityWatcher in external_watchers_ map. (#23418)
  • Update grpclb configuration with field "service_name". (#22345)
  • Fix possible deadlock in RemoveExternalConnectivityWatcher. (#23365)
  • Enable TLS 1.3 in the C-core and all wrapped languages. (#23165)
  • Add message-size check before message decompression with ordering change. (#23293)
  • Fix race condition caused by simultaneous updates on SSL server handshaker. (#22647)
  • Add missing reset for ping clocks to avoid mistakenly sending GOAWAY frames due to 'too_many_pings'. (#23145)

C++

  • Simplify makefile: Get rid of "install" rules with pure make, recommend cmake and bazel instead. (#23412)
  • Replaced grpc::string with std::string. (#23350)
  • Fix wrong version in gRPCConfigVersion.cmake and grpc++*.pc. (#22982)

C#

  • Avoid collisions in cs files generated by Grpc.Tools. (#22869)
  • Add Grpc.Auth support for Google.Apis.Auth.ITokenAccessWithHeaders. (#21616)

Objective-C

  • Objc support PB runtime import override. (#23298)

Python

  • [Aio] Support tuple and aio.Metadata interaction. (#23556)
  • [Aio] Allows poller to bind to ephemeral loops in multiple threads. (#23377)
  • [Aio] Hide init_grpc_aio and guard async API outside of AsyncIO context. (#23280)
  • [Aio] Implement methods to access auth context and peer info. (#23265)
  • Add protobuf as an "extras" dependency to grpcio package. (#23170)
  • [Aio] Use Metadata type. (#23045)
  • Avoid attribute error in del of _ChannelCallState. (#23176)
  • [gRPC Easy] Default wait_for_ready to True in simple stubs. (#23163)
  • Propagate contextvars to auxiliary threads. (#23107)
  • [gRPC Easy] Simplify channel credentials in simple stubs. (#23153)

Ruby

  • Fix ruby protoc plugin when message is in another package. (#23501)
  • Fix ruby 2.7 keyword arguments deprecation. (#23419)
  • Make sure call creds user callbacks can't kill the ruby call credentials thread. (#23333)
  • Fix auth plugin context use-after-free in ruby. (#19756)
  • Add verbose logs for details around ruby call creds user callback invocation. (#23327)

Release v1.31.0-pre2 -

This is a prerelease of gRPC Core 1.31.0 (galore).

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 prerelease contains refinements, improvements, and bug fixes.

Release v1.31.0-pre1 -

This is a prerelease of gRPC Core 1.31.0 (galore).

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 prerelease contains refinements, improvements, and bug fixes.

Release v1.30.2 -

This is the 1.30.2 release (gradius) of gRPC Core.

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 is a patch specifically for the Ruby plugin to address #23490

Ruby

Release v1.30.1 -

This is the 1.30.1 release (gradius) of gRPC Core.

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 is a patch specifically for the Ruby bindings to address #19195

Ruby

Release v1.30.0 -

This is the 1.30.0 release (gradius) of gRPC Core.

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

  • 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. (#23082)
  • Support xDS via both xds and xds-experimental URI schemes. (#23105)
  • Fix sorting of gRPCLB addresses when resolved via DNS. (#23086)
  • Support local creds in grpc_cli. (#23037)
  • Add some additional delay when sending pings without there being activity on receive side. (#22932)
  • Added GRPC_TSAN_SUPPRESSED and GRPC_ASAN_SUPPRESSED. (#22325)
  • Fail decompression when the gzip trailer is missing. (#22929)
  • Include source address in tcp posix async connect errors. (#22802)
  • Fix #19094 and #21947 - Fix HTTP status conversion inconsistencies. (#22901)
  • Add GRPC_ARG_HTTP_PROXY channel argument. (#20866)
  • Include the query type and name in all c-ares DNS error messages. (#22865)
  • Include the destination address in synchronous TCP connect errors. (#22868)
  • Use aligned calculation to determine transport stream from call data. (#22730)
  • Fixing bug with END_STREAM if header has continuations. (#22626)
  • Fail writes when End of stream has been received. (#22668)

C++

  • Fix missing include for std::string. (#23032)
  • Don't override cmake cxx standard when already set by the user. (#22976)
  • Grpc.Tools: Fix cpp paths in tools to match actual codegen. (#22113)
  • TlsCredentialsOption API optimization. (#22873)
  • Fixed MinGW 7.3.0 shared library compile and link issues. (#21720)
  • Fix interceptor batch method FailHijackedRecvMessage for async APIs. (#22746)

C#

  • Reintroduce "C# expose C-core's debug error string in Status struct". (#23148)
  • Fix C++ cleanup in Grpc.Tools. (#22895)
  • C# expose C-core's debug error string in Status struct. (#22891)
  • Fix properties in Grpc.Tools. (#22896)
  • C#: add SkipGrpcNativeLibs flag (in Grpc.Core.targets). (#22894)
  • Add helper methods for getting metadata values. (#22743)

Objective-C

  • objc: add autogenerated header to generated files. (#22871)
  • Moved GRPCTypes into its own grpc_objc_library. (#22913)

PHP

  • PHP xDS Interop Client. (#23056)
  • PHP: Fix crash in subprocess after fork(). (#22774)

Python

  • Add Aio stream stream client interceptor support. (#23092)
  • [Aio] Add AsyncIO support for Channelz. (#22667)
  • Stop memory leak when Python channel is deallocated without invoking "close". (#22855)
  • Expose ALTS client/server credentials in Python API. (#22638)
  • [Aio] Stream Unary client interceptor. (#22821)
  • [Aio] Make sync handlers runnable in AsyncIO server. (#22812)
  • [Aio] Add AsyncIO support to grpcio-status. (#22688)
  • [Aio] Implement the Unary Stream client interceptor. (#22713)

Ruby

  • Fix Ruby 2.7 compatibility in GenericService.underscore. (#20417)
  • Ruby: surface recv_status_op.error_string and into BadStatus exceptions. (#22876)
  • Fix to use immutable string literal. (#20867)
  • Fix YARD annotation of GRPC::ClientInterceptor. (#22734)
  • Convert hash to keyword arguments for ruby 2.7. (#22915)
  • Fix generating method output with nested resource. (#22594)

Release v1.30.0-pre1 -

This is a prerelease of gRPC Core 1.30.0 (gradius).

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 prerelease contains refinements, improvements, and bug fixes.

Release v1.29.1 -

This is the 1.29.1 release (gringotts) of gRPC Core.

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.

PHP

  • PHP: Fix include path for boringssl in windows build #22993

Objective-C

  • --grpc_out: protoc-gen-grpc: Plugin killed by signal 6. (#22781)

Release v1.28.2 -

This is the 1.28.2 release (galactic) of gRPC Core.

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.

Objective-C

  • --grpc_out: protoc-gen-grpc: Plugin killed by signal 6. (#22781)

Release v1.29.0 -

This is the 1.29.0 release (gringotts) of gRPC Core.

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.

A significant change was made in #22575 where gRPC Core will check whether the decompressed message fits in the configured limit for the maximum message length that the channel can receive. (The default limit is 4MB.)

Core

  • Move decompression into gRPC Core. (#22575)
  • Introduce CFRunLoop based iomgr. (#22423)
  • Add option for logging keepalive pings. (#22640)
  • Clamp the receive flow control window size to ((1 << 31) - 1). (#22615)
  • CallCredentials debug string API. (#21984)

C++

  • Append to CMAKE_MODULE_PATH instead of replacing it. (#22380)
  • Clean way to enable C and C++ standards in cmake. (#15502)
  • Autogenerate build.yaml equivalent from bazel BUILD metadata (with bazel query xml). (#21929)

Python

  • [Aio] Add AsyncIO support to grpcio-reflection. (#22662)
  • Support SO_REUSEPORT on manylinux2010. (#22643)
  • [Aio] Add wait_for_connection API for streaming calls. (#22565)
  • [Aio] Accepts normal iterable of request messages. (#22580)
  • [Aio] Support all sequential metadata. (#22539)
  • [Aio] Initial modelling of the metadata abstraction. (#22306)
  • Add Python Example Server with Reflection and Health Checking Enabled. (#22460)
  • Correct the docstring and implementation of AuthMetadataPlugin. (#22471)
  • [Aio] Change the default IO engine to POLLER. (#22453)
  • Annotate channel context manager methods to make pytype happy. (#22405)
  • [Health Checking] Make the empty service default to SERVING state. (#22369)
  • [Aio] One completion queue & many-thread many-loop. (#22311)
  • [Aio] Add an alternative mode for the AsyncIO Stack. (#22258)
  • [gRPC Easy] Generate simple stubs code. (#22218)
  • [Aio] Implement server interceptor for unary unary call. (#22032)

Ruby

  • Add ruby 2.7 to mac binary packages. (#22195)

Release v1.28.1 -

This is the 1.28.1 release (galactic) of gRPC Core.

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 is a patch specifically for the Python bindings to address https://github.com/grpc/grpc/issues/22546.

Python

  • Backport #22549 to 1.28 (Only load simple stubs code on 3.6+ interpreters). (#22550)

Release v1.28.0 -

This is the 1.28.0 release (galactic) of gRPC Core.

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

  • feat: add x-goog-user-project header from quota_project_id field. (#21324)
  • Reintroduce #21527 (boringssl submodule unification - take two). (#21833)
  • Reintroduce #21527 (boringssl submodule unification). (#21797)
  • Treat an empty http_proxy mean "Don't use proxy" and skip parsing it. (#21632)

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. (#22177)
  • Fix regression in MSVC runtime flag. (#21792)
  • Unify boringssl submodules and use non-developer boringssl cmake build. (#21527)

Objective-C

  • Fix ObjC memory consumption increase as app runs. (#21798)

Python

  • Backport Simple Stubs Codegen to 1.28. (#22310)
  • [Aio] Generate gRPC AsyncIO API Reference. (#21987)
  • Experimental: Implement Top-Level Invocation Functions Not Requiring an Explicit Channel. (#21954)
  • [Aio] Implement health checking servicer in AsyncIO. (#22028)
  • [Aio] Prohibit mixing two styles of API on client side. (#21910)
  • [Aio] Add channel_ready helper function. (#21885)
  • [Aio] Support compression for both client and server. (#21809)
  • [Aio] Close ongoing calls when the channel is closed. (#21819)
  • [Aio] Fix the server credentials & improve socket implementation. (#21855)
  • [Aio] Support wait-for-ready mechanism. (#21803)
  • [Aio] Fix the windows build failure. (#21820)
  • Stop building manylinux1 images. (#21780)
  • [Aio] Move status and initial metadata handling to Cython. (#21696)

Ruby

  • Backport to 1.28.x: add ruby 2.7 to mac binary pkgs. (#22205)
  • Add ruby-2.7 to build process of binary gems for Windows and Linux. (#22039)

Release v1.28.0-pre3 -

This is a prerelease of gRPC Core 1.28.0 (galactic).

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 prerelease contains refinements, improvements, and bug fixes.

Release v1.28.0-pre2 -

This is a prerelease of gRPC Core 1.28.0 (galactic).

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 prerelease contains refinements, improvements, and bug fixes.

Release v1.28.0-pre1 -

This is a prerelease of gRPC Core 1.28.0 (galactic).

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 prerelease contains refinements, improvements, and bug fixes.

Release v1.27.3 -

This is the 1.27.3 release (guantao) of gRPC Core.

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 is a patch release for the gRPC-C++.

Release v1.27.2 -

This is the 1.27.2 release (guantao) of gRPC Core.

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 is a patch release for gRPC-Python, which publishes originally intended stripped python wheels. This release is done to correct a set of package uploads from the 1.27.1 release that mistakenly contained some python wheels that were not stripped.

Release v1.27.1 -

This is the 1.27.1 release (guantao) of gRPC Core.

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.

Python

  • Temporarily Readd Manylinux1 Support. (#21924)

Release v1.27.0 -

This is the 1.27.0 release (guantao) of gRPC Core.

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

  • fix build with OpenSSL1.1.1+ on Windows. (#21611)
  • Add a new submodule libuv v1.34.0. (#21583)
  • grpclb: Add support for balancer telling client to enter fallback mode. (#21452)
  • Bare bones of the libuv EventManager. (#21216)
  • Allow default use of system root certs on Android. (#21395)

C++

  • Backport: Fix regression in MSVC runtime flag (for v1.27.x). (#21810)
  • Add Support for Full Chain Callbacks - experimental namespace. (#21423)
  • Improve documentation for building with CMake. (#21529)
  • Conditionally enable OPENSSL_NO_ASM for Visual Studio. (#21427)
  • Allow gRPC_INSTALL with module providers. (#21411)
  • Add Findc-ares.cmake module. (#20815)
  • Census client filter: use current span and tags. (#21249)
  • Improve & update BUILDING.md. (#21329)

C#

  • Introduce ChannelBase.ShutdownAsync() in a backward-compatible manner. (#21667)
  • c# - reduce delegate allocations in the Async*Call API. (#21365)
  • C# health checks watch. (#21120)

Python

  • Drop manylinux1 support. Manylinux2010 is now the recommended Linux wheel format. (#21790)
  • [Aio] Implement add_done_callback and time_remaining. (#21681)
  • [Aio] Support SO_REUSEPORT channel option. (#21643)
  • [Aio] Support metadata. (#21647)
  • [Aio] Client Streaming and Bi-di Streaming. (#21517)
  • [Aio] Abort mechanism for server side. (#21582)
  • [Aio] Implement connectivity state related APIs. (#21621)
  • [Aio] Support credentials for unary calls. (#21351)
  • [Aio] Support channel argument for both client and server. (#21607)
  • [Aio] Client Side Interceptor For Unary Calls. (#21455)
  • [Aio] Call correctly the connect CB error when an error happens. (#21543)
  • [bazel] Add more stringent check for detection of python headers. (#21477)
  • [Aio] Streaming API - Server side streaming. (#21232)
  • Ship grpcio-status with the actual proto file. (#21377)

Release v1.27.0-pre2 -

This is a prerelease of gRPC Core 1.27.0 (guantao).

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 prerelease contains refinements, improvements, and bug fixes.

Release v1.27.0-pre1 -

This is a prerelease of gRPC Core 1.27.0 (guantao).

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 prerelease contains refinements, improvements, and bug fixes.

Release v1.26.0 -

This is the 1.26.0 release (gon) of gRPC Core.

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

  • Fix compression filter crash on empty payload. (#21315)
  • Ensure awake pollset_work threads exist on Windows. (#19311)
  • Disable client_idle_filter. (#20910)
  • Remove gpr_get/set_allocation_functions. (#20462)
  • Security audit response. (#20839)

C++

  • Automatically disable testing frameworks if gRPC_BUILD_TESTS=OFF. (#20976)
  • Do not build channelz when gRPC_USE_PROTO_LITE. (#21011)
  • Add options for all codegen plugins. (#20629)
  • gRPC-C++ podspec follows gRPC versioning. (#20977)
  • Issue 19208: Fix pollset_set_del_fd to cleanup all fd references. (#20452)
  • De-duplicate .proto file processing. (#20537)
  • cmake: Add VERSION and SOVERSION properties to libraries. (#20770)

C#

  • C# Fix Unobserved Task Exception problem for cancelled calls with unexhausted response stream. (#21202)
  • Fix C# sending empty payloads with gzip compression. (#21266)
  • C#: fix #20782. (#20859)

Objective-C

  • Update GRPCUnaryResponseHandler with generics. (#21316)

Python

  • Release Python3.8 wheels for Windows. (#21271)
  • Release Python3.8 wheel on macOS. (#21270)
  • Fix issue with exception being out of scope in Python 3. (#20314)
  • [AIO] Implement the shutdown process for AIO server and completion queue. (#20805)
  • Attempt to drop support for Python 3.4. (#20789)
  • AIO Unified call interface. (#20824)
  • Make sure Core aware of gevent Cython objects. (#20891)
  • [bazel] Add an ability to call an optional custom plugin for py_proto_library and py_grpc_library. (#20846)

Release v1.26.0-pre1 -

This is a prerelease of gRPC Core 1.26.0 (gon).

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 prerelease contains refinements, improvements, and bug fixes.