Skip to content

Releases: grpc/grpc

Release 1.1.1

06 Feb 23:17
Compare
Choose a tag to compare

This is the 1.1.1 patch release for the gRPC Node library.

Changes

Node

  • Fix DNS resolution failure when no port was explicitly provided (#9518)
  • Add some argument validation when adding services to a server (#9288)
  • Fix handling of deprecatedArgumentOrder option (#7053)

Release 1.1.0

04 Feb 01:24
Compare
Choose a tag to compare

Release 1.1

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 1.1 release of gRPC.

C-core:

  • Added support for HTTP CONNECT proxies
  • Fixed many bugs related to handshaking
  • Added channel arg for max send message length

C++:

  • Allow selecting load-balancing policy via client API

Python:

  • Fixed bug with time_remaining() API (#9420)
  • Iterable validation on streaming API (#8686)
  • Add server channel arguments parameter (#8137)

Ruby:

- Return unavailable on EPIPE fix #8745M
- Bugfixes: PR’s #9183, #9191, #8833, #8632
- Ruby-tools on windows fix #8304
- BadStatus subclass API added: PR #8879
- Ruby 2.4 support

  • The Grpc-Ruby 1.1.0 release was postponed. The 1.1.2 release has been published, which includes the changes noted here.

PHP:

C#:

  • Fix: Throw RpcException instead of InvalidOperationException from requestStream.WriteAsync() on error: #8084
  • Public C# benchmarks have been switched to CoreCLR
  • Huge C# throughput improvements (#8396, #8444, #8472). For best performance, use the Server GC mode "System.GC.Server": true
  • Started collecting basic performance numbers on Windows.
  • Basic server reflection implementation available in Grpc.Reflection NuGet package (#8857)
  • Codegen improvements: #9060, #9061, #8297, 8619
  • Other bugfixes: #8594

Objective-c:

  • Bug fixes for better Cronet support

Node:

  • Add support for Node 7
  • Add support for Electron (Following the instructions at http://electron.atom.io/docs/tutorial/using-native-node-modules/ is necessary to install on electron. The export npm_config_build_from_source=true line may be omitted)
  • Drop support for two versions of Node that are no longer maintained: Node 0.12 and io.js 1.0
  • Fix bug where serialization errors would not be surfaced (#8882)
  • Fix bug where events (specifically status and error) could be emitted in a different order depending on method type (#7705)
  • Fix bug where end events could be omitted even when a readable stream failed with an error (#8954).
  • KNOWN ISSUE: DNS resolution fails in the client when a hostname is provided without a port number (#9518).

gRPC v1.1.0-pre1

29 Jan 04:17
Compare
Choose a tag to compare
gRPC v1.1.0-pre1 Pre-release
Pre-release

Release candidate for gRPC v1.1.0

Objective-C 1.0.2 Release

29 Nov 04:01
Compare
Choose a tag to compare

This release include bug fix for gRPC Objective-C.

  • #8735 Send RST_STREAM from client when it receives trailing metadata without the corresponding RST_STREAM.

Release 1.0.1

02 Feb 01:51
Compare
Choose a tag to compare

Release 1.0.1

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.

C Core:

  • #8402: Make initial connect retry backoff configurable
  • #8735: Send RST_STREAM from client when it receives trailing metadata without the corresponding RST_STREAM

C#:

  • Added support for netstandard1.5 target in the NuGet packages
  • .NET Core (CoreCLR) is now fully supported

Objective C:

  • #8402: Make initial connect retry backoff configurable

PHP:

  • #7896: reject metadata keys that are not legal

Ruby:

  • #8265: fix to ruby protoc plugin

Node:

  • Removed some deprecated native function calls
  • Update dependencies

Release 1.0.0

19 Aug 04:14
Compare
Choose a tag to compare

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:

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 your Podfile), 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 with protoc](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

Objective-C 1.0.0 Pre-release 1

19 Jul 03:12
Compare
Choose a tag to compare
Pre-release

gRPC for Objective-C didn't have a 0.15 release, so we're pre-releasing 1.0.0 for Objective-C now. Other languages are also pre-released already or going to be soon.

Major highlights include:

  • #7264 BoringSSL's podspec (as v5.0) now builds correctly for devices (not only simulator).
  • #7288 Well-known protos (the .proto files distributed with protoc) can now be used when compiling pods as dynamic frameworks.
  • #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.
  • #6855 Support for multiple services defined in the same .proto file.
  • (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 your Podfile), which means it can be used alongside pods written in Swift.

Development Release 0.15.0

01 Jul 18:03
Compare
Choose a tag to compare
Pre-release

Release 0.15.0

Please see the notes for the previous releases here: https://github.com/grpc/grpc/releases

Development release of https://github.com/grpc/grpc.

c-core:

  • Fixed issues & continuously running tests for C/C++ for different compilers (GCC 4.4, 4.6, 5.3 and clang 3.5, 3.7, 3.7)

Python:

  • 10X performance improvement
  • Stability fixes
  • Python3.4 Alpha Support
  • Source distributions now run with Python3.4 on Linux
  • Preview of final API, some breaking changes are expected prior to GA:
  • #7062
  • Generated example code now uses the final API

Ruby:

  • API change: Metadata and channel arguments are now single hash arguments instead of keyword arguments
  • Improved the library's ability to respond to signals

PHP:

  • Added getTrailingMetadata API #6632
  • Added an optional Channel argument to BaseStub constructor #6634
  • Implemented more interop tests #6631
  • Added stress test client #6417

C#:

  • Stability fixes (#6984, #6991, #7023)
  • Documentation improvements (#6909, #6993,
  • Decrease default log verbosity (#6890)
  • Performance improvements (latency & throughput)
  • Expose setting for gRPC threadpool size & number of completion queues used (#6699)
  • Better behavior in shutdown situations (#6560, #6754)
  • API: Client side streaming writes now throw RpcException if call has already finished (#6493)
  • API: Improvements of streaming API behavior in some corner cases (#6699)
  • Assorted API improvements (#6809, #6827)
  • Stopped generating the FooService.NewClient factory method (#7008)
  • Significant progress on CoreCLR support (added project.json files and all unit tests are passing on Linux, Mac and Windows). Official NuGet doesn't support CoreCLR yet. (#6104)

Node:

  • Include proto well-known types with the grpc-tools package
  • Add API for redirecting logs from the library and changing log verbosity
  • Fix bug where the library would segfault when it received a compressed message

Benchmarking:

  • continously running performance benchmarks in all the languages (except PHP and ObjectiveC)

Development Release 0.14.1

20 May 21:38
Compare
Choose a tag to compare
Pre-release

Release 0.14.1

Please see the notes for the previous releases here: https://github.com/grpc/grpc/releases

Development release of https://github.com/grpc/grpc.

Cross language features:

c-core:

  • Added compression tracer ("compression") for the display of compression statistics.
  • Changes to support GCC 6.0
  • Fixes for memory leaks, uses after free, race conditions, and compiler compatibility.

cpp:

  • Added plugin mechanism for ServerBuilder.
  • Propagated comments from proto file to generated grpc.pb.h file.

python:

  • Created grpc-tools package, which enables installing protoc and the Python gRPC plugin for protoc in a PyPI wheel/source distribution
  • Removed deprecated alpha code
  • Began distributing manylinux1 wheels (pip install grpcio on linux no longer downloads from beyond PyPI)

ruby:

  • Created grpc-tools package, which enables installing protoc and the Ruby grpc plugin for protoc in a gem.
  • Modified one error code to match the specification: if a server is overwhelmed with requests, it will now respond to new requests with RESOURCE_EXHAUSTED.
  • Fixed an occasional case where a client or server would crash if there were too many simultaneous calls associated with a single connection
  • Add peer_cert method to Ruby call object
  • Make ruby clients and servers properly terminate on Ctrl+C, and make server processes properly stop when the server shuts down
  • Allow users to set a user agent option on stubs

php:

  • Fixed a memory leak in byte_buffer cleanup #6096

csharp:

API improvements

  • Adjusted behavior of request stream & response stream in some corner cases to improve usability (#6416)
  • Don't use interfaces for generated client and server stubs to make adding a new RPC to a .proto file non-breaking (#5928)

NuGet packages

  • Grpc.Core NuGet package now works correctly with DNX-style project.json projects and get rid of grpc.native.csharp package (#6115)
  • Set assembly versions according to the best practices (#6281)

Protoc codegen plugin

  • Use comments from .proto file in the generated code (#6348)
  • Allow generating just clientside/serverside code (#6284)
  • Allow generating code with internal visibility (#6284)

Other

  • performance and stability improvements (e.g. in handling unary calls on server-side and throughput improvements) (#6498, #6434, #6420)
  • implemented stress test client and integrated C# into stress test framework
  • improvements to performance worker and started running C# performance tests continuously
  • migrated all unit tests to NUnit 3.2

node:

  • Made all client methods take the callback as the last argument whether or not any optional arguments are passed. For now, the old argument order can be forced with the 'deprecatedArgumentOrder' option on client class creation and grpc.load
  • Added support for service definitions generated with protoc.
  • Created grpc-tools package, which enables installing protoc and the Node grpc plugin for protoc using npm.
  • Made Node servers accept partial implementations for services, and respond to any unimplemented methods with an UNIMPLEMENETED status.
  • Modified one error code to match the specification: failing to parse a request results in an INTERNAL error.
  • Fixed a bug where a client would occasionally hang after finishing a call.

Development Release 0.13.1

05 Apr 20:26
Compare
Choose a tag to compare
Pre-release

Release 0.13.1

Please see the notes for the previous releases here: https://github.com/grpc/grpc/releases

Development release of github.com/grpc/grpc.

c-core:

  • Fixes for memory leaks, uses after free, race conditions, and compiler compatibility.
  • Allow ‘.’ in metadata keys.

python:

  • Defect fixes.

ruby:

  • Fix some import errors.
  • Fix a rare crash at exit.
  • Fix some synchronization bugs.
  • Fix credentials getting garbage collected too early.
  • Fix a couple of memory leaks.

csharp:

  • Improved stability thanks to many fixes in C core.
  • Fix loading of native library for web apps or whenever using assembly shadowing (#5810)
  • Grpc.Tools NuGet package now contain pre-compiled protoc and grpc\_csharp\_plugin binaries for Linux, Windows and Mac OS X. That eliminates the need to install protoc and C# protoc plugin on Linux and Mac to generate the C# code (#5464).
  • Preconditions class have been renamed to GrpcPreconditions (#5309).

node:

  • Add options to expose some Protobuf.js code generation options.
  • Make the client report message deserialization failure details.
  • Fix a race condition in the client when receiving status.