gRPC v1.24.0 Release Notes

Release Date: 2019-09-25 // over 4 years ago
  • This is the 1.24.0 release (ganges) 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

    • ๐Ÿ‘€ gRPC Core starts to have a dependency against the C++ standard library such as libstdc++.so depending on the platform. This applies to all wrapped libraries and they have this new dependency, too. (For more detail, see the proposal)
    • โœ‚ Remove call from queued picks when failing it due to channel destruction. (#20128)
    • Catch the error if socket initialization fails. (#19766)
    • Do not create streams after a GOAWAY has been received. (#19968)
    • ๐Ÿ“œ Prevent HTTP2 parser from queueing a lot of induced frames. (#19924)
    • Send RPC deadline to server in cronet header. (#19820)
    • Mandate static string for host and method passed to grpc_channel_register. (#19263)
    • Fail SEND_MESSAGE ops if stream is closed for writes. (#19868)
    • โž• Add Delegating Channel. (#19316)

    C++

    • Allow call credentials interception at PRE_SEND_INITIAL_METADATA. (#20188)
    • โฌ†๏ธ Upgrade to Bazel 0.29 (including Windows RBE). (#20165)
    • โšก๏ธ Update Google Benchmark v1.5.0 to get CMake < 3.6 fix. (#19535)
    • ๐Ÿ›  Fix a big source of races in CHTTP2 code. (#20139)
    • Channel idleness atomic. (#19727)
    • โšก๏ธ Update C++ code generation to work with Bazel 0.29 . (#19860)

    C

    • โช Revert "Enable bitcode for ios native libraries" in v1.24.x. (#20233)
    • ๐Ÿ‘ C#: support serialization to IBufferWriter. (#19792)
    • โœ‚ Remove LiteClientBase. (#20149)
    • Enable bitcode for ios native libraries. (#20113)

    Objective-C

    • โž• Added experimental tvOS and watchOS support. (#19787)

    Python

    • ๐Ÿ”Œ Add strip_prefix to python protoc plugin and py_grpc_library. (#20141)
    • Switch py_proto_library from using src to deps to conform with google3. (#20027)
    • ๐Ÿ”ฆ Expose local credentials on Python layer. (#19971)
    • 0๏ธโƒฃ Make default vtable for pointer argument a constant. (#20013)
    • Gracefully handle errors from Future object callbacks. (#20015)
    • ๐Ÿšฆ Gracefully handle exceptions raised by signal handlers on the main thread while unary RPCs are in flight. (#19988)
    • Separate py_grpc_library and py_proto_library. (#19822)
    • Add wait_for_termination method to grpc.Server. (#19299)
    • โž• Add Python Cancellation Example. (#19465)

    ๐Ÿ’Ž Ruby

    • ๐Ÿ’Ž Define Struct::Status in Ruby. (#19939)
    • ๐Ÿ‘ Allow Ruby style (::) package names in Ruby codegen. (#19940)
    • ๐Ÿ‘ Allow loading grpc/errors.rb before grpc.rb. (#19893)