Skip to content

Commit 0b4615d

Browse files
committed
Add implementation progress
1 parent 28b6fc3 commit 0b4615d

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

README.md

+13-2
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,21 @@
22
[![test][teststatus_img]][teststatus]
33

44
# TaskSeq
5+
56
An implementation [`IAsyncEnumerable<'T>`][3] as a `taskSeq` CE for F# with accompanying `TaskSeq` module.
67

78
The `IAsyncEnumerable` interface was added to .NET in `.NET Core 3.0` and is part of `.NET Standard 2.1`. The main use-case was for iterative asynchronous enumeration over some resource. For instance, an event stream or a REST API interface with pagination, where each page is a [`MoveNextAsync`][4] call on the [`IAsyncEnumerator<'T>`][5] given by a call to [`GetAsyncEnumerator()`][6]. It has been relatively challenging to work properly with this type and dealing with each step being asynchronous, and the enumerator implementing [`IAsyncDisposable`][7] as well, which requires careful handling.
89

10+
## Implementation progress
11+
12+
The _resumable state machine_ backing the `taskSeq` CE is considered stable. While bugs are always possible, we will mostly focus on adding functionality there, like adding more useful overloads for `yield` and `let!`. Suggestions are welcome!
13+
14+
We are working hard on getting a full set of module functions on `TaskSeq` that can be used with `IAsyncEnumerable` sequences. Our guide is the set of F# `Seq` functions in F# Core and, where applicable, the functions provided from `AsyncSeq`. Each implemented function is documented through XML doc comments to provide the necessary context-sensitive help.
15+
16+
The following is the progress report:
17+
18+
TODO!
19+
920
### Futher reading `IAsyncEnumerable`
1021

1122
* A good C#-based introduction [can be found in this blog][8].
@@ -33,10 +44,10 @@ TLDR: just run `build`. Or load the `sln` file in Visual Studio or VS Code and c
3344
### Prerequisites
3445

3546
* .NET 6 or .NET 7 Preview
36-
* F# 6.0 compiler
47+
* F# 6.0 or 7.0 compiler
3748
* To use `build.cmd`, the `dotnet` command must be accessible from your path.
3849

39-
Just checkout this repo locally. Then, from the root of the repo, you can do:
50+
Just check-out this repo locally. Then, from the root of the repo, you can do:
4051

4152
### Build the solution
4253

0 commit comments

Comments
 (0)