Release 1.0.0
Please see the notes for the previous releases here: https://github.com/grpc/grpc/releases. Also please see http://grpc.io/ for all information regarding this product.
This is the first GA (General Availability) release of gRPC, and can be considered ready for production. The API can now be considered stable. For the corresponding Java release, you can read their release notes, and grab the release here: https://github.com/grpc/grpc-java/releases/tag/v1.0.0
Cross language features:
- gRPC now uses protobuf-3.0.0 as released on https://github.com/google/protobuf/releases/tag/v3.0.0 - please visit that page for relevant release notes.
C-core:
- Performance boost using delayed writes.
- Added support for SO_REUSEPORT.
- New error propagation system.
- Default log verbosity is now ERROR.
- Various optimizations and fixes.
Python:
- [Made handlers optional in
grpc.server](https://github.com/grpc/grpc/pull/7160)
. - Python 3 support.
- Added a reference implementation of server health-checking as the package grpcio-health-checking.
- Added distutils custom command for gRPC proto generation to grpcio-tools.
- Many behind-the-scenes fixes.
Ruby:
- Removed Core::CompletionQueue from the public API. Removed all function parameters that required CompletionQueues.
- Split trailing metadata out into a separate instance variable on calls.
- Due to a protobuf change, the generated filenames changed to have a "_rb" suffix added to them.
PHP:
Csharp:
- Support for use of the Grpc nuget package with dotnet CLI tooling #7230.
- Async library dependency updated from Ix-Async.1.2.5 to System.Interactive.3.0.0.
Objective-c:
Major highlights include:
- #7359
protoc
and the gRPC plugin for Objective-C are now distributed as pods, so versions mismatches among them and the Protobuf and gRPC runtimes are an issue of the past. - (Various pull requests) Compressed data and connectivity changes are now handled more robustly.
- #6849 gRPC can now be integrated as dynamic frameworks (
use_frameworks!
in yourPodfile
), which means it can be used alongside pods written in Swift.
Other important changes are:
- #7264 BoringSSL's podspec (starting at v5.0) now builds correctly for devices (not only simulator).
- #7288 Well-known protos ([the
.proto
files distributed withprotoc](https://github.com/google/protobuf/tree/master/src/google/protobuf)
) can now be used when compiling pods as dynamic frameworks. - #6855 Support for multiple services defined in the same
.proto
file. - #7572 The default response size limit was reduced to 4MB. The limit can now be adjusted by the app if necessary.
Node:
- Split node health check code into a separate package: grpc-health-check
- Fixed an issue propagating some authentication errors.
- Fixed a memory leak when using call credentials