LiteBus 4.2.0

dotnet add package LiteBus --version 4.2.0
                    
NuGet\Install-Package LiteBus -Version 4.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="LiteBus" Version="4.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LiteBus" Version="4.2.0" />
                    
Directory.Packages.props
<PackageReference Include="LiteBus" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add LiteBus --version 4.2.0
                    
#r "nuget: LiteBus, 4.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package LiteBus@4.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=LiteBus&version=4.2.0
                    
Install as a Cake Addin
#tool nuget:?package=LiteBus&version=4.2.0
                    
Install as a Cake Tool

<h1 align="center"> <a href="https://github.com/litenova/LiteBus"> <img src="assets/logo/icon.png" alt="LiteBus Logo" width="128"> </a> <br> LiteBus </h1>

<h4 align="center">A lightweight, high-performance mediator for building clean, scalable, and testable .NET applications with CQS and DDD.</h4>

<p align="center"> <a href="https://github.com/litenova/LiteBus/actions/workflows/release.yml"> <img src="https://github.com/litenova/LiteBus/actions/workflows/release.yml/badge.svg" alt="Build Status" /> </a> <a href="https://codecov.io/gh/litenova/LiteBus" > <img src="https://codecov.io/gh/litenova/LiteBus/graph/badge.svg?token=XBNYITSV5A" alt="Code Coverage" /> </a> <a href="https://www.nuget.org/packages/LiteBus.Commands.Extensions.Microsoft.DependencyInjection"> <img src="https://img.shields.io/nuget/vpre/LiteBus.Commands.Extensions.Microsoft.DependencyInjection.svg" alt="NuGet Version" /> </a> </p>

<p align="center"> For detailed documentation and examples, please visit the <strong><a href="https://github.com/litenova/LiteBus/wiki">Wiki</a></strong>. </p>

LiteBus is an in-process mediator designed from the ground up for modern .NET. It helps you implement Command Query Separation (CQS) and Domain-Driven Design (DDD) patterns by providing a clean, decoupled architecture for your application's business logic.

Why Choose LiteBus?

  • CQS & DDD First-Class Citizens: Enforces clean architecture with distinct, semantic contracts like ICommand<TResult>, IQuery<TResult>, and IEvent. You can even publish pure POCO domain events without coupling your model to the framework.

  • Optimized for High Performance: Minimizes runtime overhead by discovering and caching handler metadata at startup. Handlers are resolved lazily from your DI container, and large datasets are handled efficiently with IAsyncEnumerable<T> streaming via IStreamQuery<T>.

  • Granular Pipeline Customization: Go beyond simple behaviors with a full pipeline of pre-handlers, post-handlers, and error handlers. Filter handlers by context using [HandlerTag] attributes and dynamic predicates.

  • Advanced Event Concurrency: Take full control over your event processing. Configure Sequential or Parallel execution for both priority groups and for handlers within the same group, allowing you to fine-tune your application's throughput and determinism.

  • DI-Agnostic & Resilient: Decoupled from any specific DI container, with first-class support for Microsoft DI and Autofac. It also includes a built-in Durable Command Inbox for guaranteed, at-least-once execution of critical commands.

Quick Example

Here’s how to define and handle a command to create a new product.

1. Define the Command

A command is a simple object representing a request. This one returns the Guid of the new product.

public sealed record CreateProductCommand(string Name, decimal Price) : ICommand<Guid>;
2. Implement the Handler

The handler contains the business logic to process the command.

public sealed class CreateProductCommandHandler : ICommandHandler<CreateProductCommand, Guid>
{
    private readonly IProductRepository _repository;

    public CreateProductCommandHandler(IProductRepository repository) => _repository = repository;

    public async Task<Guid> HandleAsync(CreateProductCommand command, CancellationToken cancellationToken)
    {
        var product = new Product(command.Name, command.Price);
        await _repository.AddAsync(product, cancellationToken);
        return product.Id;
    }
}
3. Configure and Use

Register LiteBus in Program.cs and inject ICommandMediator to send your command.

// In Program.cs
builder.Services.AddLiteBus(liteBus =>
{
    // This registers the Command Module and scans the assembly for handlers.
    // The core MessageModule is included automatically.
    liteBus.AddCommandModule(module =>
    {
        module.RegisterFromAssembly(typeof(Program).Assembly);
    });
});

// In your API Controller
[ApiController]
public class ProductsController : ControllerBase
{
    private readonly ICommandMediator _commandMediator;

    public ProductsController(ICommandMediator commandMediator) => _commandMediator = commandMediator;

    [HttpPost]
    public async Task<IActionResult> Create(CreateProductCommand command)
    {
        var productId = await _commandMediator.SendAsync(command);
        return CreatedAtAction(nameof(GetById), new { id = productId }, productId);
    }
}

Installation

The recommended way to get started is by installing the extension package for your DI container and the modules you need.

For Microsoft Dependency Injection
dotnet add package LiteBus.Commands.Extensions.Microsoft.DependencyInjection
dotnet add package LiteBus.Queries.Extensions.Microsoft.DependencyInjection
dotnet add package LiteBus.Events.Extensions.Microsoft.DependencyInjection

Documentation

For comprehensive guides, advanced features, and best practices, please visit the * *LiteBus Wiki**.

Key pages include:

Available Packages

The LiteBus ecosystem is split into several packages so you can install only what you need.

Core Modules & Abstractions
Package Version
LiteBus.Commands NuGet version
LiteBus.Commands.Abstractions NuGet version
LiteBus.Queries NuGet version
LiteBus.Queries.Abstractions NuGet version
LiteBus.Events NuGet version
LiteBus.Events.Abstractions NuGet version
LiteBus.Messaging NuGet version
LiteBus.Messaging.Abstractions NuGet version
Runtime & DI Extensions
Package Version
LiteBus.Runtime NuGet version
LiteBus.Runtime.Abstractions NuGet version
LiteBus.Commands.Extensions.Microsoft.DependencyInjection NuGet version
LiteBus.Commands.Extensions.Autofac NuGet version
LiteBus.Commands.Extensions.Microsoft.Hosting NuGet version
(Query and Event extensions follow the same pattern)

Contributing

Contributions are welcome! Please feel free to open an issue or submit a pull request.

License

LiteBus is licensed under the MIT License. See the LICENSE file for details.

Product 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 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on LiteBus:

Package Downloads
VaultForce.Application

shared resources

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on LiteBus:

Repository Stars
EdiWang/Moonglade
Blog system of https://edi.wang, runs on Microsoft Azure
Version Downloads Last Updated
4.2.0 209 11/11/2025
4.1.0 378 10/30/2025
4.0.0 1,888 9/18/2025
3.1.0 5,304 8/5/2025
3.0.0 4,559 7/21/2025
2.2.3 160 7/18/2025
2.2.2 146 7/18/2025
2.2.1 904 7/8/2025
2.2.0 206 7/8/2025
2.1.0 215 7/1/2025
2.0.0 708 4/29/2025
1.1.0 210 4/24/2025
1.0.0 138 4/19/2025
0.25.1 224 4/17/2025
0.25.0 221 4/13/2025
0.24.4 198 4/10/2025
0.24.3 176 5/2/2024
0.24.2 169 4/16/2024
0.24.1 186 1/30/2024
0.23.1 182 1/11/2024
0.23.0 219 12/23/2023
0.22.0 188 12/23/2023
0.21.0 179 12/18/2023
0.20.2 163 12/8/2023
0.20.1 187 12/5/2023
0.20.0 182 12/5/2023
0.19.1 191 11/25/2023
0.19.0 178 11/23/2023
0.18.4 180 11/23/2023
0.18.3 181 11/23/2023
0.18.2 179 11/22/2023
0.18.1 171 11/6/2023
0.18.0 169 11/1/2023
0.17.1 167 10/20/2023
0.16.0 209 9/26/2023
0.15.1 262 6/23/2023
0.15.0 230 6/23/2023
0.14.1 235 6/22/2023
0.14.0 444 11/30/2022
0.13.0 494 10/7/2022
0.12.0 1,613 1/6/2022
0.11.3 465 12/27/2021
0.11.2 405 12/27/2021
0.11.1 408 12/26/2021
0.11.0 430 12/23/2021
0.10.2 387 12/22/2021
0.10.1 404 12/20/2021
0.10.0 456 12/15/2021
0.9.1 507 10/25/2021
0.9.0 459 10/25/2021
0.8.1 733 10/9/2021
0.8.0 511 9/7/2021
0.7.0 499 8/19/2021
0.6.3 488 8/9/2021
0.6.2 487 8/9/2021
0.6.1 469 8/9/2021
0.6.0 499 8/9/2021
0.5.0 1,111 7/8/2021
0.4.0 902 4/13/2021
0.3.1 558 4/13/2021
0.2.1 569 4/9/2021
0.2.0 557 4/6/2021
0.1.0 787 3/17/2021