Skip to content

Commit c957ac1

Browse files
committed
bump version
1 parent f4c6fb0 commit c957ac1

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
An implementation of [`IAsyncEnumerable<'T>`][3] as a computation expression: `taskSeq { ... }` with an accompanying `TaskSeq` module and functions, that allow seamless use of asynchronous sequences similar to F#'s native `seq` and `task` CE's.
88

9-
* Latest stable version: [0.4.0 is on NuGet][nuget].
9+
* Latest stable version is [on NuGet][nuget].
1010

1111
## Release notes<!-- omit in toc -->
1212

@@ -170,15 +170,15 @@ let feedFromTwitter user pwd = taskSeq {
170170

171171
## Choosing between `AsyncSeq` and `TaskSeq`
172172

173-
The [`AsyncSeq`][11] and `TaskSeq` libraries both operate on asynchronous sequences, but there are a few fundamental differences. The most notable being that the former _does not_ implement `IAsyncEnumerable<'T>`, though it does have a type of that name with different semantics (not surprising; it predates the definition of the modern one). Another key difference is that `TaskSeq` uses `ValueTask`s for the asynchronous computations, whereas `AsyncSeq` uses F#'s `Async<'T>`.
173+
The [`AsyncSeq`][11] and `TaskSeq` libraries both operate on asynchronous sequences, but there are a few fundamental differences. The most notable being that `TaskSeq` uses `ValueTask`s and state machines for asynchronous computations with much lower overhead, whereas `AsyncSeq` uses F#'s `Async<'T>`.
174174

175175
There are more differences:
176176

177177
| | `TaskSeq` | `AsyncSeq` |
178178
|----------------------------|---------------------------------------------------------------------------------|----------------------------------------------------------------------|
179179
| **Frameworks** | .NET 5.0+, NetStandard 2.1 | .NET 5.0+, NetStandard 2.0 and 2.1, .NET Framework 4.6.1+ |
180180
| **F# concept of** | `task` | `async` |
181-
| **Underlying type** | [`Generic.IAsyncEnumerable<'T>`][3] <sup>[note #1](#tsnote1 "Full name System.Collections.Generic.IAsyncEnumerable&lt;'T>.")</sup>| Its own type, also called `IAsyncEnumerable<'T>`<sup>[note #1](#tsnote1 "Full name FSharp.Control.IAsyncEnumerable&lt;'T>.")</sup> |
181+
| **Underlying type** | [`IAsyncEnumerable<'T>`][3] <sup>[note #1](#tsnote1 "Full name System.Collections.Generic.IAsyncEnumerable&lt;'T>.")</sup>| Its own type, also called `IAsyncEnumerable<'T>`<sup>[note #1](#tsnote1 "Full name System.Collections.Generic.IAsyncEnumerable&lt;'T>.")</sup> |
182182
| **Implementation** | State machine (statically compiled) | No state machine, continuation style |
183183
| **Semantics** | `seq`-like: on-demand | `seq`-like: on-demand |
184184
| **Disposability** | Asynchronous, through [`IAsyncDisposable`][7] | Synchronous, through `IDisposable` |
@@ -195,7 +195,7 @@ There are more differences:
195195
| **[`Current`][5]** | [Returns `'T`][5] | n/a |
196196
| **Cancellation** | See [#133][], until 0.3.0: use `GetAsyncEnumerator(cancelToken)` | Implicit token flows to all subtasks per `async` semantics |
197197
| **Performance** | Very high, negligible allocations | Slower, more allocations, due to using `async` and cont style |
198-
| **Parallelism** | Unclear, interface is meant for _sequential/async_ processing | Supported by extension functions |
198+
| **Parallelism** | Interface is meant for _sequential/async_ processing | Supported by extension functions |
199199

200200
<sup>¹⁾ <a id="tsnote1"></a>_Both `AsyncSeq` and `TaskSeq` use a type called `IAsyncEnumerable<'T>`, but only `TaskSeq` uses the type from the BCL Generic Collections. `AsyncSeq` supports .NET Framework 4.6.x and NetStandard 2.0 as well, which do not have this type in the BCL._</sup>
201201

Version.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project>
22
<PropertyGroup>
33
<!-- updating this version will trigger a publish after merge to 'main' -->
4-
<Version>0.4.0</Version>
4+
<Version>0.6.0</Version>
55
</PropertyGroup>
66
</Project>

0 commit comments

Comments
 (0)