Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
litenova committed Nov 27, 2023
1 parent 3099d20 commit e308f9a
Showing 1 changed file with 14 additions and 13 deletions.
27 changes: 14 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,43 +8,44 @@
<br>
</h1>

<h4 align="center">An easy-to-use and ambitious and in-process mediator to implement CQS</h4>
<h4 align="center">An easy-to-use and ambitious in-process mediator to implement CQS</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="CI/CD Badge">
<img src="https://github.com/litenova/LiteBus/actions/workflows/release.yml/badge.svg" alt="CI/CD Badge" />
</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 Badge" />
</a>

<a href="https://codecov.io/gh/litenova/LiteBus" >
<img src="https://codecov.io/gh/litenova/LiteBus/graph/badge.svg?token=XBNYITSV5A"/>
</a>
<a href="https://www.nuget.org/packages/LiteBus">
<img src="https://img.shields.io/nuget/vpre/LiteBus.svg" alt="LiteBus Nuget Version">
<img src="https://img.shields.io/nuget/vpre/LiteBus.svg" alt="LiteBus Nuget Version" />
</a>
</p>

<p align="center">
For a detailed understanding and advanced use cases, please refer to the <a href="https://github.com/litenova/LiteBus/wiki"><b>Wiki</b></a>.
</p>


## Features

- Developed with .NET 8.0
- Independent (No external dependencies)
- Reduced use of reflection
- Provides polymorphic dispatch and handling of messages with support for covariance and contravariance
- Core Messaging Types include:
- `ICommand`: Command without result
- `ICommand<TResult>`: Command with a result
- `IQuery<TResult>`: Query
- `IStreamQuery<TResult>`: Query yielding `IAsyncEnumerable<TResult>`
- `IEvent`: Event
- `ICommand`: Command without result
- `ICommand<TResult>`: Command with a result
- `IQuery<TResult>`: Query
- `IStreamQuery<TResult>`: Query yielding `IAsyncEnumerable<TResult>`
- `IEvent`: Event
- Designed for flexibility and extensibility
- Modular architecture: Abstractions and implementations are provided in distinct packages
- Allows ordering of handlers
- Can handle plain messages (class types without specific interface implementations)
- Supports generic messages
- Features both global and individual pre and post handlers. These handlers also support covariance and contravariance
- Events do not necessarily need to inherit from `IEvent`, accommodating DDD scenarios. This is beneficial for maintaining clean domain events without binding them to any particular library interface.
- Events do not necessarily need to inherit from `IEvent`, accommodating DDD scenarios. This is beneficial for
maintaining clean domain events without binding them to any particular library interface.

0 comments on commit e308f9a

Please sign in to comment.