Brer 1.0.11
See the version list below for details.
dotnet add package Brer --version 1.0.11
NuGet\Install-Package Brer -Version 1.0.11
<PackageReference Include="Brer" Version="1.0.11" />
paket add Brer --version 1.0.11
#r "nuget: Brer, 1.0.11"
// Install Brer as a Cake Addin #addin nuget:?package=Brer&version=1.0.11 // Install Brer as a Cake Tool #tool nuget:?package=Brer&version=1.0.11
Brer
A rabbitMQ library for ASP.NET.
Special thanks to Marco Pil
How do i use Brer?
Brer makes use of a hostedservice in ASP.NET.
A basic brer startup example can be found here.
Initial Setup
In short one must register the Brer services as follows:
services.UseBrer(
new BrerOptionsBuilder().WithAddress(BrerOptionsBuilder.localHost, BrerOptionsBuilder.defaultPort)
.WithPassword(BrerOptionsBuilder.defaultLogin)
.WithUserName(BrerOptionsBuilder.defaultLogin)
.WithExchange("MyExchange")
.WithQueueName("MyQueue")
.Build()
);
Brer can also be configured using environment variables as follows:
services.UseBrer(new BrerOptionsBuilder().ReadFromEnviromentVariables().Build());
Where it will look for the following variables:
- BrerHostName
- BrerPort
- BrerExchangeName
- BrerQueueName
- BrerUserName
- BrerPassword
Registering/Decorating an EventListener
Brer will automatically scan all referencing assemblies for EventListeners.
Once a class is annoted with the EventListener
attribute it will further scan the class for Handlers
.
NOTE: wildcards are currently not (officially) supported.
[EventListener]
public class MyEventHandler{
[Handler(topic:"MyTopic")]
public async Task Handle(MyEvent @event){
// do stuff
}
}
Publishing events.
To publish an event simply inject the IBrerPublisher
into your class.
public class MyEventPublisher{
private readonly IBrerPublisher _brerPublisher;
MyEventPublisher(IBrerPublisher brerPublisher){
_brerPublisher = brerPublisher;
}
PublishEvent(){
_brerPublisher.Publish("MyTopic", MyEvent)
}
}
I want to contribute!
As of now we'd greatly appreciate more Example projects & unit-testing of the library.
notes:
- No global usings
- Use SonarLint
- Rider/ReSharper default styling preferred
I'm missing a feature!
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. |
-
net8.0
- Microsoft.AspNetCore.Hosting.Abstractions (>= 2.2.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 7.0.0)
- Microsoft.Extensions.DependencyModel (>= 7.0.0)
- Newtonsoft.Json (>= 13.0.3)
- RabbitMQ.Client (>= 6.5.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Properly display readme.