Fluent.Streams
1.0.0-preview.2
dotnet add package Fluent.Streams --version 1.0.0-preview.2
NuGet\Install-Package Fluent.Streams -Version 1.0.0-preview.2
<PackageReference Include="Fluent.Streams" Version="1.0.0-preview.2" />
<PackageVersion Include="Fluent.Streams" Version="1.0.0-preview.2" />
<PackageReference Include="Fluent.Streams" />
paket add Fluent.Streams --version 1.0.0-preview.2
#r "nuget: Fluent.Streams, 1.0.0-preview.2"
#:package Fluent.Streams@1.0.0-preview.2
#addin nuget:?package=Fluent.Streams&version=1.0.0-preview.2&prerelease
#tool nuget:?package=Fluent.Streams&version=1.0.0-preview.2&prerelease
Fluent.Streams
Markerless CQRS and event sourcing primitives for .NET.
Fluent.Streams provides append-only stream-oriented building blocks and source-generated command dispatching while keeping your domain command types framework-free.
using Fluent.Streams;
public sealed record RegisterUser(string Username, string Password);
public sealed class RegisterUserHandler
{
public ValueTask<UserRegistrationResult> HandleAsync(
RegisterUser command,
CancellationToken cancellationToken = default)
{
// Append events and return a domain-specific result.
return ValueTask.FromResult<UserRegistrationResult>(new UserRegistered(command.Username));
}
}
ICommandDispatcher dispatcher = new EventSourcingBuilder()
.WithCommand<RegisterUserHandler>()
.Build();
UserRegistrationResult result = await dispatcher.SendAsync(new RegisterUser("leszek", "secret"));
Command handlers are ordinary classes with HandleAsync(TCommand, CancellationToken) methods. Use ValueTask for commands without a result and ValueTask<TResult> for commands that return a union, result type, or custom response.
License
Fluent.Streams is free and open source software licensed under the MIT License. You can use it in private and commercial projects.
Keep in mind that you must include a copy of the license in your project.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. net11.0 is compatible. |
| .NET Framework | net472 is compatible. net48 was computed. net481 is compatible. |
-
.NETFramework 4.7.2
- System.Threading.Tasks.Extensions (>= 4.5.0)
-
.NETFramework 4.8.1
- System.Threading.Tasks.Extensions (>= 4.5.0)
-
net10.0
- No dependencies.
-
net11.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Fluent.Streams:
| Package | Downloads |
|---|---|
|
Fluent.Streams.DependencyInjection
Markerless CQRS and event sourcing primitives for .NET: append-only streams, source-generated command registration, ValueTask handlers, and result-friendly command dispatching. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0-preview.2 | 164 | 7/4/2026 |
| 1.0.0-preview.1 | 53 | 7/4/2026 |