Bielu.AspNetCore.AsyncApi.Wolverine
1.3.0
Prefix Reserved
See the version list below for details.
dotnet add package Bielu.AspNetCore.AsyncApi.Wolverine --version 1.3.0
NuGet\Install-Package Bielu.AspNetCore.AsyncApi.Wolverine -Version 1.3.0
<PackageReference Include="Bielu.AspNetCore.AsyncApi.Wolverine" Version="1.3.0" />
<PackageVersion Include="Bielu.AspNetCore.AsyncApi.Wolverine" Version="1.3.0" />
<PackageReference Include="Bielu.AspNetCore.AsyncApi.Wolverine" />
paket add Bielu.AspNetCore.AsyncApi.Wolverine --version 1.3.0
#r "nuget: Bielu.AspNetCore.AsyncApi.Wolverine, 1.3.0"
#:package Bielu.AspNetCore.AsyncApi.Wolverine@1.3.0
#addin nuget:?package=Bielu.AspNetCore.AsyncApi.Wolverine&version=1.3.0
#tool nuget:?package=Bielu.AspNetCore.AsyncApi.Wolverine&version=1.3.0
Bielu.AspNetCore.AsyncApi.Wolverine
Wolverine integration for Bielu.AspNetCore.AsyncApi.
Wolverine already knows where every message goes: its routing rules decide which messages are
published to Kafka topics, pushed to SignalR clients or read from listeners. This package builds the
AsyncAPI document from that routing, so channels and operations follow the configuration instead of
being repeated in [Channel]/[PublishOperation] attributes that can drift from it.
Installation
dotnet add package Bielu.AspNetCore.AsyncApi.Wolverine
Usage
builder.Host.UseWolverine(opts =>
{
opts.UseSignalR<NotificationsHub>();
opts.Publish(rule => rule.MessagesImplementing<WebSocketMessage>().ToSignalR());
opts.UseKafka(kafkaBootstrap);
opts.PublishMessage<OrderPlaced>().ToKafkaTopic("orders");
opts.ListenToKafkaTopic("stock").DefaultIncomingMessage<StockChanged>();
});
// One document per audience: what the browser receives, and what other services exchange.
builder.Services.AddAsyncApi("realtime", options =>
{
options.AddServer("signalr", "localhost", "signalr");
options.AddWolverine(wolverine => wolverine
.IncludeAssemblyContaining<OrderShipped>()
.IncludeSchemes("signalr"));
});
builder.Services.AddAsyncApi("messaging", options =>
{
options.AddServer("kafka", kafkaBootstrap, "kafka");
options.AddWolverine(wolverine => wolverine
.IncludeAssemblyContaining<OrderPlaced>()
.IncludeSchemes("kafka"));
});
What it generates:
| Wolverine | AsyncAPI |
|---|---|
A route for a message type (ToKafkaTopic, ToSignalR, ...) |
A send operation on the endpoint's channel |
A listener with DefaultIncomingMessage<T>() |
A receive operation on the listener's channel |
A handler that returns a message with no route (or any message, with IncludeReplies()) |
The reply of that receive operation, addressed by the reply-uri header |
The message type name ([MessageIdentity], or Wolverine's default) |
The message name, the same one used on the wire |
| The SignalR transport | A channel at the path the WolverineHub is mapped at, with signalr bindings targeting ReceiveMessage |
| A Kafka topic | A channel at the topic, with a kafka channel binding |
In-process routes (local://) are never documented. XML documentation comments on the message types
become the message and schema descriptions; the package loads the XML files of the assemblies it scans.
Documentation
Feedback & Contributing
Released under the MIT license. Bug reports and contributions are welcome at the GitHub repository.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net10.0
- Bielu.AspNetCore.AsyncApi (>= 1.3.0)
- Bielu.AspNetCore.AsyncApi.Extensions.Protocols.SignalR (>= 1.3.0)
- ByteBard.AsyncAPI.NET.Bindings (>= 3.0.1)
- WolverineFx (>= 6.41.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.4.0-beta.20261017152806 | 0 | 10/17/2026 |
| 1.4.0-beta.20261017151459 | 0 | 10/17/2026 |
| 1.4.0-beta.20261017151200 | 0 | 10/17/2026 |
| 1.4.0-beta.20261017132855 | 0 | 10/17/2026 |
| 1.3.0 | 36 | 10/16/2026 |
| 1.3.0-beta.20261016090156 | 27 | 10/16/2026 |
| 1.3.0-beta.20261016085347 | 32 | 10/16/2026 |
| 1.3.0-beta.20261013190424 | 35 | 10/13/2026 |
| 1.3.0-beta.20261013190018 | 27 | 10/13/2026 |
| 1.2.0 | 74 | 10/11/2026 |
| 1.2.0-beta.20261011210939 | 55 | 10/11/2026 |
| 1.2.0-beta.20261011210217 | 49 | 10/11/2026 |
| 1.2.0-beta.20261011203039 | 41 | 10/11/2026 |
| 1.2.0-beta.20261011202253 | 50 | 10/11/2026 |
| 1.2.0-beta.20261011202241 | 40 | 10/11/2026 |
| 1.2.0-beta.20261011202238 | 45 | 10/11/2026 |
| 1.2.0-beta.20261011201858 | 47 | 10/11/2026 |
| 1.2.0-beta.20261011200821 | 42 | 10/11/2026 |
| 1.2.0-beta.20261011195017 | 41 | 10/11/2026 |
| 1.2.0-beta.20261011193940 | 42 | 10/11/2026 |