Found 42 packages
Provides support for Language-Integrated Query (LINQ) over IAsyncEnumerable<T> sequences.
Introduces IAsyncEnumerable, IAsyncEnumerator, ForEachAsync(), and ParallelForEachAsync() GitHub: https://github.com/Dasync/AsyncEnumerable PROBLEM SPACE Helps to (a) create an element provider, where producing an element can take a lot of time due to dependency on other asynchronous events (e.g. wait handles, network streams), and (b) a consumer that processes those element as soon as they are ready without blocking the thread (the processing is scheduled on a worker thread instead). EXAMPLE using Dasync.Collections; static IAsyncEnumerable<int> ProduceAsyncNumbers(int start, int end) { return new AsyncEnumerable<int>(async yield => { // Just to show that ReturnAsync can be used multiple times await yield.ReturnAsync(start); for (int number = start + 1; number <= end; number++) await yield.ReturnAsync(number); // You can break the enumeration loop with the following call: yield.Break(); // This won't be executed due to the loop break above await yield.ReturnAsync(12345); }); } // Just to compare with synchronous version of enumerator static IEnumerable<int> ProduceNumbers(int start, int end) { yield return start; for (int number = start + 1; number <= end; number++) yield return number; yield break; yield return 12345; } static async Task ConsumeNumbersAsync() { var asyncEnumerableCollection = ProduceAsyncNumbers(start: 1, end: 10); await asyncEnumerableCollection.ForEachAsync(async number => { await Console.Out.WriteLineAsync($"{number}"); }); } // Just to compare with synchronous version of enumeration static void ConsumeNumbers() { var enumerableCollection = ProduceNumbers(start: 1, end: 10); foreach (var number in enumerableCollection) { Console.Out.WriteLine($"{number}"); } }
Provides support for Language-Integrated Query (LINQ) over IAsyncQueryable<T> sequences with query providers.
Ndjson.AsyncStreams.AspNetCore.Mvc is a solution for working with asynchronous streaming data sources in ASP.NET Core MVC using NDJSON (Newline Delimited JSON).
Ndjson.AsyncStreams.Net.Http is a solution for working with asynchronous streaming data sources in HttpClient using NDJSON (Newline Delimited JSON).
Quick helper library containing interfaces and classes to help you prepare for the C# 8 Async Streams feature.
Ndjson.AsyncStreams.AspNetCore.Mvc is a solution for working with asynchronous streaming data sources in ASP.NET Core MVC using NDJSON (Newline Delimited JSON). This implementation is based on Newtonsoft Json.NET serializer.
Ndjson.AsyncStreams.AspNetCore is a solution for working with asynchronous streaming data sources in ASP.NET Core (Minimal APIs) using NDJSON (Newline Delimited JSON).
Simplify call external process with the async streams in C# 8.0.
Spreads Core library
Introduces IAsyncEnumerable, IAsyncEnumerator, ForEachAsync(), and ParallelForEachAsync() GitHub: https://github.com/Dasync/AsyncEnumerable PROBLEM SPACE Helps to (a) create an element provider, where producing an element can take a lot of time due to dependency on other asynchronous events (e.g. wait handles, network streams), and (b) a consumer that processes those element as soon as they are ready without blocking the thread (the processing is scheduled on a worker thread instead). EXAMPLE using Dasync.Collections; static IAsyncEnumerable<int> ProduceAsyncNumbers(int start, int end) { return new AsyncEnumerable<int>(async yield => { // Just to show that ReturnAsync can be used multiple times await yield.ReturnAsync(start); for (int number = start + 1; number <= end; number++) await yield.ReturnAsync(number); // You can break the enumeration loop with the following call: yield.Break(); // This won't be executed due to the loop break above await yield.ReturnAsync(12345); }); } // Just to compare with synchronous version of enumerator static IEnumerable<int> ProduceNumbers(int start, int end) { yield return start; for (int number = start + 1; number <= end; number++) yield return number; yield break; yield return 12345; } static async Task ConsumeNumbersAsync() { var asyncEnumerableCollection = ProduceAsyncNumbers(start: 1, end: 10); await asyncEnumerableCollection.ForEachAsync(async number => { await Console.Out.WriteLineAsync($"{number}"); }); } // Just to compare with synchronous version of enumeration static void ConsumeNumbers() { var enumerableCollection = ProduceNumbers(start: 1, end: 10); foreach (var number in enumerableCollection) { Console.Out.WriteLine($"{number}"); } }
Spreads top level library.
Spreads immutable collections.
Asynchronous BlockingCollection. Allow awaiting when taking an item. Also implement C# 8 Async Streams (IAsyncEnumerable), require dotnet core 3.0.
Abstractions for creating specific storage backend implementation used by StreamStore asynchronous event sourcing library.
Asynchronous event sourcing.
Base implementation of storage for StreamStore event sourcing library.
Easy-to-use async resource pool for streams operating on sockets.
Backblaze B2 storage for [StreamStore] asynchronous event sourcing library.
Amazon S3 storage for StreamStore asynchronous event sourcing library.