mirror of https://github.com/grpc/grpc-dart.git
327 lines
10 KiB
Markdown
327 lines
10 KiB
Markdown
## 4.0.0
|
|
|
|
* Set compressed flag correctly for grpc-encoding = identity. Fixes [#669](https://github.com/grpc/grpc-dart/issues/669) (https://github.com/grpc/grpc-dart/pull/693)
|
|
* Remove generated status codes.
|
|
* Remove dependency on `package:archive`.
|
|
* Move `codec.dart`.
|
|
|
|
## 3.2.4
|
|
|
|
* Forward internal `GrpcError` on when throwing while sending a request.
|
|
* Add support for proxies, see [#33](https://github.com/grpc/grpc-dart/issues/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 on `ResponseStream`.
|
|
* 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 exposes `connectTimeout`, which is used on the
|
|
socket connect. This is used to specify the maximum allowed time to wait
|
|
for a connection to be established. If `connectTime` is longer than the system
|
|
level timeout duration, a timeout may occur sooner than specified in
|
|
`connectTimeout`. On timeout, a `SocketException` is thrown.
|
|
* Require Dart 2.17 or greater.
|
|
* Fix issue [#51](https://github.com/grpc/grpc-dart/issues/51), add support for custom error handling.
|
|
* Expose client IP address to server
|
|
* Add a `channelShutdownHandler` argument to `ClientChannel` and the subclasses.
|
|
This callback can be used to react to channel shutdown or termination.
|
|
* Export the `Code` protobuf enum from the `grpc.dart` library.
|
|
* Require Dart 3.0.0 or greater.
|
|
|
|
## 3.1.0
|
|
|
|
* Expose a stream for connection state changes on ClientChannel to address
|
|
[#428](https://github.com/grpc/grpc-dart/issues/428).
|
|
This allows users to react to state changes in the connection.
|
|
* Fix [#576](https://github.com/grpc/grpc-dart/issues/576): set default
|
|
`:authority` value for UDS connections to `localhost` 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](https://github.com/grpc/grpc-dart/issues/421) and
|
|
[#458](https://github.com/grpc/grpc-dart/issues/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
|
|
as `grpc-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 via `GrpcError.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's `codecRegistry` parameter or adding the
|
|
`grpc-accept-encoding` to `metadata` parameter of `CallOptions` on the client
|
|
side and `codecRegistry` parameter to `Server` on the server side.
|
|
Outgoing rpc can be compressed using the `compression` parameter on the
|
|
`CallOptions`.
|
|
* Fix issue [#206](https://github.com/grpc/grpc-dart/issues/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](https://github.com/grpc/grpc-dart/pulls/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's `interceptors` parameter. Interceptors will be
|
|
executed by `Client.$createStreamingCall` and `Client.$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](https://github.com/grpc/grpc-dart/issues/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` and `ClientChannel`.
|
|
* Fix issue [#331](https://github.com/grpc/grpc-dart/issues/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 the `GrpcError` thrown in Dart, via
|
|
[#349](https://github.com/grpc/grpc-dart/pull/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](https://github.com/grpc/grpc-dart/pull/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](https://cloud.google.com/docs/authentication/production).
|
|
* 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` to `Server.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 exposes `ClientConnection`. It was supposed to be an internal
|
|
abstraction.
|
|
* **Breaking**: `grpc.dart` no longer exposes the deprecated `ServerHandler`.
|
|
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 for `ChannelOptions()`.
|
|
* Allow specifying `authority` for `ChannelCredentials.insecure()`.
|
|
* Add `userAgent` as an optional named argument for `clientConnection.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()` or `shutdown()` 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+1
|
|
|
|
* Updated implementation to use new Dart 2 APIs using
|
|
[dart2_fix](https://github.com/dart-lang/dart2_fix).
|
|
|
|
## 0.6.0
|
|
|
|
* Dart SDK upper constraint raised to declare compatibility with Dart 2.0 stable.
|
|
|
|
## 0.5.0
|
|
|
|
* Breaking change: The package now exclusively supports Dart 2.
|
|
* Fixed tests to pass in Dart 2.
|
|
* Added support for Interceptors ([issue #79](https://github.com/grpc/grpc-dart/issues/79)); thanks to [@mogol](https://github.com/mogol) for contributing!
|
|
|
|
## 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](https://github.com/grpc/grpc/blob/master/doc/interop-test-descriptions.md).
|
|
|
|
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.
|