grpc
Dart implementation of gRPC, a high performance, open-source universal RPC framework.
5.1.0
438K downloads/mo
#554 most downloaded on pub.dev
grpc/grpc-dart
What this package is like to depend on
Last release 8 months ago
09 Dec 2025
Release timing varies
gaps range from 2 weeks to 10 months
Nearly every release is documented
notes for 55 of 55 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
56 releases · first in 2017
4 releases in the last 12 months
see the full history below
Release timeline
56 releases · Jul 2017 to Dec 2025Releases
latest 56-
5.1.009 Dec 2025 -
5.0.017 Nov 2025 -
4.3.131 Oct 2025 -
4.3.014 Oct 2025 -
4.2.016 Aug 2025Release notes
Open source →- Export a protobuf generated symbol (
Any) - Simplify hierarchy of
ResponseFuture(no longer have a private class in the
type hierarchy) - Require Dart 3.8.
- Require package:googleapis_auth
- Require package:http 1.4.0
- Require package:lints 6.0.0
- Require package:protobuf 4.1.0
- Dart format all files for the new 3.8 formatter.
Release notes
Open source →- Export a protobuf generated symbol (
Any) - Simplify hierarchy of
ResponseFuture(no longer have a private class in the type hierarchy) - Require Dart 3.8.
- Require package:googleapis_auth
- Require package:http 1.4.0
- Require package:lints 6.0.0
- Require package:protobuf 4.1.0
- Dart format all files for the new 3.8 formatter.
- Export a protobuf generated symbol (
-
4.1.011 Jun 2025Release notes
Open source →- Add a
serverInterceptorsargument toConnectionServer. These interceptors are acting
as middleware, wrapping aServiceMethodinvocation. - Make sure that
CallOptions.mergeWithis symmetric: givenWebCallOptions
it should returnWebCallOptions.
Release notes
Open source →- Add a
serverInterceptorsargument toConnectionServer. These interceptors are acting as middleware, wrapping aServiceMethodinvocation. - Make sure that
CallOptions.mergeWithis symmetric: givenWebCallOptionsit should returnWebCallOptions.
- Add a
-
4.0.401 Apr 2025 -
4.0.331 Mar 2025 -
4.0.231 Mar 2025Release notes
Open source →- Internal optimization to client code.
- Small fixes, such as ports in testing and enabling
timeline_test.dart. - When the keep alive manager runs into a timeout, it will finish the transport instead of closing
the connection, as defined in the gRPC spec. - Upgrade to
package:lintsversion 5.0.0 and Dart SDK version 3.5.0. - Upgrade
example/grpc-webcode. - Update xhr transport to migrate off legacy JS/HTML apis.
- Use
package:webto getHttpStatus. - Fix
package:webdeprecations.
Release notes
Open source →- Internal optimization to client code.
- Small fixes, such as ports in testing and enabling
timeline_test.dart. - When the keep alive manager runs into a timeout, it will finish the transport instead of closing the connection, as defined in the gRPC spec.
- Upgrade to
package:lintsversion 5.0.0 and Dart SDK version 3.5.0. - Upgrade
example/grpc-webcode. - Update xhr transport to migrate off legacy JS/HTML apis.
- Use
package:webto getHttpStatus. - Fix
package:webdeprecations.
-
4.0.128 Aug 2024Release notes
Open source →- Fix header and trailing not completing if the call is terminated. Fixes #727
-
4.0.017 Jul 2024Release notes
Open source →- Set compressed flag correctly for grpc-encoding = identity. Fixes #669 (https://github.com/grpc/grpc-dart/pull/693)
- Remove generated status codes.
- Remove dependency on
package:archive. - Move
codec.dart. - Work around hang during Flutter hot restart by adding default case handler in _GrpcWebConversionSink.add.
-
3.2.408 Sep 2023Release notes
Open source →- Forward internal
GrpcErroron when throwing while sending a request. - Add support for proxies, see #33.
- Remove canceled
ServerHandlers from tracking list. - Fix regression on fetching the remote address of a closed socket.
- Forward internal
-
3.2.313 Jul 2023Release notes
Open source →- Add const constructor to
GrpcErrorfixing #606. - Make
GrpcErrornon-final to allow implementations. - Only send keepalive pings on open connections.
- Fix interop tests.
- Add const constructor to
-
3.2.220 Jun 2023Release notes
Open source →- Remove
basequalifier onResponseStream. - Add support for clients to send KEEPALIVE pings.
- Remove
-
3.2.117 Jun 2023Release notes
Open source →package:httpnow supports more versions:>=0.13.0 <2.0.0.package:protobufnew supports more versions:>=2.0.0 <4.0.0.
-
3.2.013 Jun 2023Release notes
Open source →ChannelOptionsnow exposesconnectTimeout, which is used on the socket connect. This is used to specify the maximum allowed time to wait for a connection to be established. IfconnectTimeis longer than the system level timeout duration, a timeout may occur sooner than specified inconnectTimeout. On timeout, aSocketExceptionis thrown.- Require Dart 2.17 or greater.
- Fix issue #51, add support for custom error handling.
- Expose client IP address to server
- Add a
channelShutdownHandlerargument toClientChanneland the subclasses. This callback can be used to react to channel shutdown or termination. - Export the
Codeprotobuf enum from thegrpc.dartlibrary. - Require Dart 3.0.0 or greater.
-
3.1.027 Oct 2022Release notes
Open source →- Expose a stream for connection state changes on ClientChannel to address #428. This allows users to react to state changes in the connection.
- Fix #576: set default
:authorityvalue for UDS connections tolocalhostinstead of using UDS path. Using path triggers checks in HTTP2 servers which attempt to validate:authorityvalue.
-
3.0.216 Aug 2021 -
3.0.110 Aug 2021Release notes
Open source →- Require
package:googleapis_auth^1.1.0 - Fix issues #421 and
#458. Validate
responses according to gRPC/gRPC-Web protocol specifications: require
200 HTTP status and a supported
Content-Typeheader to be present, as well asgrpc-status: 0header. When handling malformed responses make effort to translate HTTP statuses into gRPC statuses. - Add GrpcOrGrpcWebClientChannel which uses gRPC on all platforms except web, on which it uses gRPC-web.
GrpcErrornow exposes response trailers viaGrpcError.trailers.
- Require
-
3.0.011 Feb 2021 -
3.0.0-nullsafety.001 Feb 2021 pre-releaseNothing published for this version
-
2.9.028 Jan 2021Release notes
Open source →- Added support for compression/decompression, which can be configured through
ChannelOptionsconstructor'scodecRegistryparameter or adding thegrpc-accept-encodingtometadataparameter ofCallOptionson the client side andcodecRegistryparameter toServeron the server side. Outgoing rpc can be compressed using thecompressionparameter on theCallOptions. - Fix issue #206. Prevent an exception to be thrown when a web connection stream is closed.
- Add XHR raw response to the GrpcError for a better debugging (PR #423).
Note: this is the last release supporting SDK < 2.12. Next release will be nullsafe and thus require SDK >= 2.12.
- Added support for compression/decompression, which can be configured through
-
2.8.012 Nov 2020Release notes
Open source →- Added support for client interceptors, which can be configured through
Clientconstructor'sinterceptorsparameter. Interceptors will be executed byClient.$createStreamingCallandClient.$createUnaryCall. Using interceptors requires regenerating client stubs using version 19.2.0 or newer of protobuf compiler plugin. Client.$createCallis deprecated because it does not invoke client interceptors.- Fix issue #380 causing incorrect duplicated headers in gRPC-Web requests.
- Change minimum required Dart SDK to 2.8 to enable access to Unix domain sockets.
- Add support for Unix domain sockets in
Socket.serveandClientChannel. - Fix issue #331 causing
an exception in
GrpcWebClientChannel.terminate().
- Added support for client interceptors, which can be configured through
-
2.7.030 Oct 2020Release notes
Open source →- Added decoding/parsing of
grpc-status-details-binto pass all response exception details to theGrpcErrorthrown in Dart, via #349. - Dart SDK constraint is bumped to
>=2.3.0 <3.0.0due to language version in the generated protobuf code.
- Added decoding/parsing of
-
2.3.021 Sep 2020Release notes
Open source →- Revert PR #287, which allowed using gRPC-web in native environments but also broke streaming.
-
2.2.011 Jun 2020Release notes
Open source →- Added
applicationDefaultCredentialsAuthenticatorfunction for creating an authenticator using Application Default Credentials. - Less latency by using the
tcpNoDelayoption for sockets. - Support grpc-web in a non-web setting.
- Added
-
2.1.307 Nov 2019Release notes
Open source →- Fix bug in grpc-web when receiving an empty trailer.
- Fix a state bug in the server.
-
2.1.209 Sep 2019Release notes
Open source →- Fix bug introduced in 2.1.1 where the port would be added to the default authority when making a secure connection.
-
2.1.123 Aug 2019Release notes
Open source →- Fix bug introduced in 2.1.0 where an explicit
authoritywould not be used when making a secure connection.
- Fix bug introduced in 2.1.0 where an explicit
-
2.1.020 Aug 2019Release notes
Open source →- Do a health check of the http2-connection before making request.
- Introduce
ChannelOptions.connectionLimitthe longest time a single connection is used for new requests. - Use Tcp.nodelay to improve client call speed.
- Use SecureSocket supportedProtocols to save a round trip when establishing a secure connection.
- Allow passing http2
ServerSettingstoServer.serve.
-
2.0.308 Aug 2019Release notes
Open source →- GrpcError now implements Exception to indicate it can be reasonably handled.
-
2.0.208 Aug 2019Release notes
Open source →- Fix computation of the audience given to metadata providers to include the scheme.
-
2.0.017 Jun 2019Release notes
Open source →- Add initial support for grpc-web.
See
example/grpc-webfor an example of this working. - Breaking:
grpc.dartno longer exposesClientConnection. It was supposed to be an internal abstraction. - Breaking:
grpc.dartno longer exposes the deprecatedServerHandler. It was supposed to be an internal abstraction. service_api.dartno longer exports Server - it has never been used by the generated code.
- Add initial support for grpc-web.
See
-
2.0.0+125 Jun 2019Release notes
Open source →- Fix imports to ensure
grpc_web.darthas no accidental transitive dependencies on dart:io.
- Fix imports to ensure
-
1.0.303 Jun 2019Release notes
Open source →- Allow custom user agent with a
userAgentargument forChannelOptions(). - Allow specifying
authorityforChannelCredentials.insecure(). - Add
userAgentas an optional named argument forclientConnection.createCallHeaders().
- Allow custom user agent with a
-
1.0.203 Apr 2019Release notes
Open source →- Fix bug where the server would crash if the client would break the connection.
-
1.0.124 Jan 2019Release notes
Open source →- Add
service_api.dartthat only contains the minimal imports needed by the code generated by protoc_plugin.
- Add
-
1.0.017 Dec 2018 -
1.0.0+122 Jan 2019 -
0.6.812 Nov 2018Release notes
Open source →- Calling
terminate()orshutdown()on a channel doesn't throw error if the channel is not yet open.
- Calling
-
0.6.8+113 Dec 2018 -
0.6.624 Oct 2018Release notes
Open source →- Support
package:http>=0.11.3+17 <0.13.0. - Update
package:googleapis_authto^0.2.5+3.
- Support
-
0.6.518 Sep 2018 -
0.6.407 Sep 2018 -
0.6.119 Jul 2018 -
0.6.012 Jul 2018Release notes
Open source →- Dart SDK upper constraint raised to declare compatibility with Dart 2.0 stable.
-
0.6.0+113 Jul 2018 -
0.5.010 Jul 2018 -
0.4.105 Apr 2018 -
0.4.019 Mar 2018Release notes
Open source →- Moved TLS credentials for server into a separate class.
- Added support for specifying the address for the server, and support for serving on an ephemeral port.
-
0.3.127 Feb 2018 -
0.3.005 Feb 2018Release notes
Open source →- Added authentication metadata providers, optimized for use with Google Cloud.
- Added service URI to metadata provider API, needed for Json Web Token generation.
- Added authenticated cloud-to-prod interoperability tests.
- Refactored connection logic to throw initial connection errors early.
-
0.2.118 Jan 2018Release notes
Open source →- Updated generated code in examples using latest protoc compiler plugin.
- Dart 2.0 fixes.
- Changed license to Apache 2.0.
-
0.2.015 Dec 2017Release notes
Open source →- Implemented support for per-RPC metadata providers. This can be used for authentication providers which may need to obtain or refresh a token before the RPC is sent.
-
0.1.012 Oct 2017Release notes
Open source →- Core gRPC functionality is implemented and passes gRPC compliance tests.
The API is shaping up, but may still change as more advanced features are implemented.
-
0.0.105 Jul 2017Release notes
Open source →- Initial version.
This package is in a very early and experimental state. We do not recommend using it for anything but experiments.