grpc 3.1.0 grpc: ^3.1.0 copied to clipboard
Dart implementation of gRPC, a high performance, open-source universal RPC framework.
- 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 to
localhostinstead of using UDS path. Using path triggers checks in HTTP2 servers which attempt to validate
- Fix compilation on the Web with DDC.
- Fix issues #421 and
responses according to gRPC/gRPC-Web protocol specifications: require
200 HTTP status and a supported
Content-Typeheader to be present, as well as
grpc-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 via
- Migrate library and tests to null safety.
- Require Dart 2.12 or greater.
- Added support for compression/decompression, which can be configured through
codecRegistryparameter or adding the
CallOptionson the client side and
Serveron the server side. Outgoing rpc can be compressed using the
compressionparameter on the
- 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 client interceptors, which can be configured through
interceptorsparameter. Interceptors will be executed by
Client.$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
- Fix issue #331 causing
an exception in
- Added decoding/parsing of
grpc-status-details-binto pass all response exception details to the
GrpcErrorthrown in Dart, via #349.
- Dart SDK constraint is bumped to
>=2.3.0 <3.0.0due to language version in the generated protobuf code.
- Create gRPC servers and clients with [Server|Client]TransportConnection. This allows callers to provide their own transport configuration, such as their own implementation of streams and sinks instead of sockets.
- Expose a
validateClientmethod for server credentials so gRPC server users may know when clients are loopback addresses.
- Plumb stacktraces through request / response stream error handlers.
- Catch and forward any errors decoding the response.
- Add the ability to bypass CORS preflight requests.
- Revert PR #287, which allowed using gRPC-web in native environments but also broke streaming.
cryptoversion dependency constraint from
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.
- Fix bug in grpc-web when receiving an empty trailer.
- Fix a state bug in the server.
- Fix bug introduced in 2.1.1 where the port would be added to the default authority when making a secure connection.
- Fix bug introduced in 2.1.0 where an explicit
authoritywould not be used when making a secure connection.
- Do a health check of the http2-connection before making request.
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
- GrpcError now implements Exception to indicate it can be reasonably handled.
- Fix computation of the audience given to metadata providers to include the scheme.
- Fix computation of authority. This should fix authorization.
- Fix imports to ensure
grpc_web.darthas no accidental transitive dependencies on dart:io.
- Add initial support for grpc-web.
example/grpc-webfor an example of this working.
grpc.dartno longer exposes
ClientConnection. It was supposed to be an internal abstraction.
grpc.dartno longer exposes the deprecated
ServerHandler. It was supposed to be an internal abstraction.
service_api.dartno longer exports Server - it has never been used by the generated code.
- Allow custom user agent with a
- Allow specifying
userAgentas an optional named argument for
- Fix bug where the server would crash if the client would break the connection.
service_api.dartthat only contains the minimal imports needed by the code generated by protoc_plugin.
- Support package:http2 1.0.0.
- Graduate package to 1.0.
- Removes stray files that where published by accident in version 0.6.8.
shutdown()on a channel doesn't throw error if the channel is not yet open.
- Support package:test 1.5.
- Interceptors are now async.
- Update dependencies to be compatible with Dart 2.
- Make fields of
StatusCodeconst rather than final.
- Allow for non-ascii header values.
- More fixes to update to Dart 2 core library APIs.
- Dart SDK upper constraint raised to declare compatibility with Dart 2.0 stable.
- Fixes for supporting Dart 2.
- 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.
- Split out TLS credentials to a separate class.
- 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.
- Updated generated code in examples using latest protoc compiler plugin.
- Dart 2.0 fixes.
- Changed license to Apache 2.0.
- 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.
- 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.
- Initial version.
This package is in a very early and experimental state. We do not recommend using it for anything but experiments.