The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
This release is a bug fix version.
- Multicast: don't cancel the upstream sequence when a client is cancelled (https://github.com/sideeffect-io/AsyncExtensions/pull/32)
- SwitchToLatest: fix a situation where child task could hang indefinitely (https://github.com/sideeffect-io/AsyncExtensions/pull/20)
This version removes the compilation unsafe flags
This version brings a lot of internal refactoring and breaking changes + some new operators.
Now `swift-async-algorithms` has been anounced, this library can be seen as a companion for the Apple repo.
For now there is an overlap between both libraries, but when `swift-async-algorithms` becomes stable the overlapping operators while be deprecated in `AsyncExtensions`.
Nevertheless `AsyncExtensions` will continue to provide the operators that the community needs and are not provided by Apple.
- `AsyncBufferedChannel`/`AsyncThrowingBufferedChannel`: is the equivalent to `AsyncChannel` from Apple. The difference is that back-pressure is handled with a stack and the send operation is not suspending.
- Subjects: the `subject` suffix has been adopted to all the "hot" `AsyncSequence` with a shared output. A throwing counterpart has been added.
- `zip` and `merge` are top level functions to match Apple repo.
- `AsyncThrowingJustSequence`: an `AsyncSequence` that takes a throwing closure to compute the only element to emit.
- `AsyncStream.pipe()`: creates and `AsyncStream` by escaping the `Continuation` and returning a tuple to manipulate the inputs and outputs of the stream.
- `mapToResult()`: maps events (elements or failure) from an `AsyncSequence` to a `Result`. The resulting `AsyncSequence` cannot fail.
- `AsyncLazySequence`: is a renaming to match Apple repo for creating an `AsyncSequence` from a `Sequence`.
This release brings:
- a fix to finish a `Timer` when the Task is canceled
- a new `@Streamed` property wrapper
- Operators: new share() operator
- Operators: new withLatestFrom(_:) operator
- AsyncSequences: new Timer AsyncSequence
- AsyncStreams: `send()` functions are now synchronous
This release fixes a potential issue where ConcurrentAccessRegulator could call the onNext function in a non deterministic way timeline wise.
This release brings:
- AsyncStreams.CurrentValue element made public and available with get/set
- A new Multicast operator
- A new Assign operator
This release brings the first set of operators:
Async Sequences:
- Just
- Empty
- Fail
- From
- Merge
- Zip2
- Zip3
- Zip
Async Streams:
- Passthrough
- CurrentValue
- Replay
Operators:
- Collect
- Scan
- SwitchToLatest
- FlatMapLatest
- HandleEvents
- EraseToAnyAsyncSequence