stream_channel 2.1.3 stream_channel: ^2.1.3 copied to clipboard
An abstraction for two-way communication channels based on the Dart Stream class.
2.1.3 #
- Require Dart 3.3
- Move to
dart-lang/tools
monorepo.
2.1.2 #
- Require Dart 2.19
- Add an example.
- Fix a race condition in
IsolateChannel.connectReceive()
where the channel could hang forever if its sink was closed before the connection was established.
2.1.1 #
- Require Dart 2.14
- Populate the pubspec
repository
field. - Handle multichannel messages where the ID element is a
double
at runtime instead of anint
. When reading an array withdart2wasm
numbers within the array are parsed asdouble
.
2.1.0 #
- Stable release for null safety.
2.0.0 #
Breaking changes
IsolateChannel
requires a separate importpackage:stram_channel/isolate_channel.dart
.package:stream_channel/stream_channel.dart
will now not trigger any platform concerns due to importingdart:isolate
.- Remove
JsonDocumentTransformer
class. ThejsonDocument
top level is still available. - Remove
StreamChannelTransformer.typed
. Use.cast
on the transformed channel instead. - Change
Future<dynamic>
returns toFuture<void>
.
1.7.0 #
- Make
IsolateChannel
available throughpackage:stream_channel/isolate_channel.dart
. This will be the required import in the next release. - Require
2.0.0
or newer SDK. - Internal style changes.
1.6.8 #
- Set max SDK version to
<3.0.0
, and adjust other dependencies.
1.6.7+1 #
- Fix Dart 2 runtime types in
IsolateChannel
.
1.6.7 #
- Update SDK version to 2.0.0-dev.17.0.
- Add a type argument to
MultiChannel
.
1.6.6 #
-
Fix a Dart 2 issue with inner stream transformation in
GuaranteeChannel
. -
Fix a Dart 2 issue with
StreamChannelTransformer.fromCodec()
.
1.6.5 #
- Fix an issue with
JsonDocumentTransformer.bind
where it created an internal stream channel which didn't get a properly inferred type for itssink
.
1.6.4 #
- Fix a race condition in
MultiChannel
where messages from a remote virtual channel could get dropped if the corresponding local channel wasn't registered quickly enough.
1.6.3 #
- Use
pumpEventQueue()
from test.
1.6.2 #
- Declare support for
async
2.0.0.
1.6.1 #
- Fix the type of
StreamChannel.transform()
. This previously inverted the generic parameters, so it only really worked with transformers where both generic types were identical.
1.6.0 #
Disconnector.disconnect()
now returns a future that completes when all the innerStreamSink.close()
futures have completed.
1.5.0 #
-
Add
new StreamChannel.withCloseGuarantee()
to provide the specific guarantee that closing the sink causes the stream to close before it emits any more events. This is the only guarantee that isn't automatically preserved when transforming a channel. -
StreamChannelTransformer
s provided by thestream_channel
package now properly provide the guarantee that closing the sink causes the stream to close before it emits any more events
1.4.0 #
-
Add
StreamChannel.cast()
, which soundly coerces the generic type of a channel. -
Add
StreamChannelTransformer.typed()
, which soundly coerces the generic type of a transformer.
1.3.2 #
- Fix all strong-mode errors and warnings.
1.3.1 #
-
Make
IsolateChannel
slightly more efficient. -
Make
MultiChannel
follow the stream channel rules.
1.3.0 #
- Add
Disconnector
, a transformer that allows the caller to disconnect the transformed channel.
1.2.0 #
-
Add
new StreamChannel.withGuarantees()
, which creates a channel with extra wrapping to ensure that it obeys the stream channel guarantees. -
Add
StreamChannelController
, which can be used to create customStreamChannel
objects.
1.1.1 #
- Fix the type annotation for
StreamChannel.transform()
's parameter.
1.1.0 #
-
Add
StreamChannel.transformStream()
,StreamChannel.transformSink()
,StreamChannel.changeStream()
, andStreamChannel.changeSink()
to support changing only the stream or only the sink of a channel. -
Be more explicit about
JsonDocumentTransformer
's error-handling behavior.
1.0.1 #
- Fix
MultiChannel
's constructor to take aStreamChannel
. This is technically a breaking change, but since 1.0.0 was only released an hour ago, we're treating it as a bug fix.
1.0.0 #
- Initial version