grpc 4.0.0 grpc: ^4.0.0 copied to clipboard
Dart implementation of gRPC, a high performance, open-source universal RPC framework.
4.0.0 #
- 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.4 #
- Forward internal
GrpcError
on when throwing while sending a request. - Add support for proxies, see #33.
- Remove canceled
ServerHandler
s from tracking list. - Fix regression on fetching the remote address of a closed socket.
3.2.3 #
- Add const constructor to
GrpcError
fixing #606. - Make
GrpcError
non-final to allow implementations. - Only send keepalive pings on open connections.
- Fix interop tests.
3.2.2 #
- Remove
base
qualifier onResponseStream
. - Add support for clients to send KEEPALIVE pings.
3.2.1 #
package:http
now supports more versions:>=0.13.0 <2.0.0
.package:protobuf
new supports more versions:>=2.0.0 <4.0.0
.
3.2.0 #
ChannelOptions
now 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. IfconnectTime
is longer than the system level timeout duration, a timeout may occur sooner than specified inconnectTimeout
. On timeout, aSocketException
is thrown.- Require Dart 2.17 or greater.
- Fix issue #51, add support for custom error handling.
- Expose client IP address to server
- Add a
channelShutdownHandler
argument toClientChannel
and the subclasses. This callback can be used to react to channel shutdown or termination. - Export the
Code
protobuf enum from thegrpc.dart
library. - Require Dart 3.0.0 or greater.
3.1.0 #
- 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
:authority
value for UDS connections tolocalhost
instead of using UDS path. Using path triggers checks in HTTP2 servers which attempt to validate:authority
value.
3.0.2 #
- Fix compilation on the Web with DDC.
3.0.1 #
- 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-Type
header to be present, as well asgrpc-status: 0
header. 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.
GrpcError
now exposes response trailers viaGrpcError.trailers
.
3.0.0 #
- Migrate library and tests to null safety.
- Require Dart 2.12 or greater.
2.9.0 #
- Added support for compression/decompression, which can be configured through
ChannelOptions
constructor'scodecRegistry
parameter or adding thegrpc-accept-encoding
tometadata
parameter ofCallOptions
on the client side andcodecRegistry
parameter toServer
on the server side. Outgoing rpc can be compressed using thecompression
parameter 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.
2.8.0 #
- Added support for client interceptors, which can be configured through
Client
constructor'sinterceptors
parameter. Interceptors will be executed byClient.$createStreamingCall
andClient.$createUnaryCall
. Using interceptors requires regenerating client stubs using version 19.2.0 or newer of protobuf compiler plugin. Client.$createCall
is 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.serve
andClientChannel
. - Fix issue #331 causing
an exception in
GrpcWebClientChannel.terminate()
.
2.7.0 #
- Added decoding/parsing of
grpc-status-details-bin
to pass all response exception details to theGrpcError
thrown in Dart, via #349. - Dart SDK constraint is bumped to
>=2.3.0 <3.0.0
due to language version in the generated protobuf code.
2.6.0 #
- 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.
2.5.0 #
- Expose a
validateClient
method for server credentials so gRPC server users may know when clients are loopback addresses.
2.4.1 #
- Plumb stacktraces through request / response stream error handlers.
- Catch and forward any errors decoding the response.
2.4.0 #
- Add the ability to bypass CORS preflight requests.
2.3.0 #
- Revert PR #287, which allowed using gRPC-web in native environments but also broke streaming.
2.2.0+1 #
- Relax
crypto
version dependency constraint from^2.1.5
to^2.1.4
.
2.2.0 #
- Added
applicationDefaultCredentialsAuthenticator
function for creating an authenticator using Application Default Credentials. - Less latency by using the
tcpNoDelay
option for sockets. - Support grpc-web in a non-web setting.
2.1.3 #
- Fix bug in grpc-web when receiving an empty trailer.
- Fix a state bug in the server.
2.1.2 #
- Fix bug introduced in 2.1.1 where the port would be added to the default authority when making a secure connection.
2.1.1 #
- Fix bug introduced in 2.1.0 where an explicit
authority
would not be used when making a secure connection.
2.1.0 #
- Do a health check of the http2-connection before making request.
- Introduce
ChannelOptions.connectionLimit
the 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
ServerSettings
toServer.serve
.
2.0.3 #
- GrpcError now implements Exception to indicate it can be reasonably handled.
2.0.2 #
- Fix computation of the audience given to metadata providers to include the scheme.
2.0.1 #
- Fix computation of authority. This should fix authorization.
2.0.0+1 #
- Fix imports to ensure
grpc_web.dart
has no accidental transitive dependencies on dart:io.
2.0.0 #
- Add initial support for grpc-web.
See
example/grpc-web
for an example of this working. - Breaking:
grpc.dart
no longer exposesClientConnection
. It was supposed to be an internal abstraction. - Breaking:
grpc.dart
no longer exposes the deprecatedServerHandler
. It was supposed to be an internal abstraction. service_api.dart
no longer exports Server - it has never been used by the generated code.
1.0.3 #
- Allow custom user agent with a
userAgent
argument forChannelOptions()
. - Allow specifying
authority
forChannelCredentials.insecure()
. - Add
userAgent
as an optional named argument forclientConnection.createCallHeaders()
.
1.0.2 #
- Fix bug where the server would crash if the client would break the connection.
1.0.1 #
- Add
service_api.dart
that only contains the minimal imports needed by the code generated by protoc_plugin.
1.0.0+1 #
- Support package:http2 1.0.0.
1.0.0 #
- Graduate package to 1.0.
0.6.8+1 #
- Removes stray files that where published by accident in version 0.6.8.
0.6.8 #
- Calling
terminate()
orshutdown()
on a channel doesn't throw error if the channel is not yet open.
0.6.7 #
- Support package:test 1.5.
0.6.6 #
- Support
package:http
>=0.11.3+17 <0.13.0
. - Update
package:googleapis_auth
to^0.2.5+3
.
0.6.5 #
- Interceptors are now async.
0.6.4 #
- Update dependencies to be compatible with Dart 2.
0.6.3 #
- Make fields of
StatusCode
const rather than final.
0.6.2 #
- Allow for non-ascii header values.
0.6.1 #
- More fixes to update to Dart 2 core library APIs.
0.6.0 #
- Dart SDK upper constraint raised to declare compatibility with Dart 2.0 stable.
0.5.0 #
0.4.1 #
- Fixes for supporting Dart 2.
0.4.0 #
- 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.1 #
- Split out TLS credentials to a separate class.
0.3.0 #
- 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.1 #
- Updated generated code in examples using latest protoc compiler plugin.
- Dart 2.0 fixes.
- Changed license to Apache 2.0.
0.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.
0.1.0 #
- 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.1 #
- Initial version.
This package is in a very early and experimental state. We do not recommend using it for anything but experiments.