ConcordIO.AsyncApi
0.8.7
dotnet add package ConcordIO.AsyncApi --version 0.8.7
NuGet\Install-Package ConcordIO.AsyncApi -Version 0.8.7
<PackageReference Include="ConcordIO.AsyncApi" Version="0.8.7" />
<PackageVersion Include="ConcordIO.AsyncApi" Version="0.8.7" />
<PackageReference Include="ConcordIO.AsyncApi" />
paket add ConcordIO.AsyncApi --version 0.8.7
#r "nuget: ConcordIO.AsyncApi, 0.8.7"
#:package ConcordIO.AsyncApi@0.8.7
#addin nuget:?package=ConcordIO.AsyncApi&version=0.8.7
#tool nuget:?package=ConcordIO.AsyncApi&version=0.8.7
ConcordIO.AsyncApi
A shared .NET library for AsyncAPI document generation (server) and C# contract code generation (client). Provides the core types, services, and abstractions used by ConcordIO.AsyncApi.Server and ConcordIO.AsyncApi.Client.
This README is included as the NuGet package readme.
Note: This library is not consumed directly by end users. It is referenced internally by the Server and Client MSBuild task packages.
Features
Scope: The generated AsyncAPI documents serve as a contract catalog — they describe message schemas and .NET type metadata, but do not include broker configuration (queue names, exchange bindings, server connections). Channel addresses use MassTransit URN format, not actual broker endpoints. Broker topology is determined at runtime by MassTransit.
- Server-side: Generate AsyncAPI 3.x documents from .NET types (MassTransit message contracts)
- Client-side: Generate C# contract types from AsyncAPI specifications
- Type discovery: Pattern-based discovery of event and command types from assemblies
- External type resolution: Detect types already defined in referenced assemblies to avoid duplicate generation
- Cross-namespace support: Preserve .NET namespaces via
x-dotnet-namespace/x-dotnet-typeextensions - Definition enum support: Generates enum types declared inside schema
definitionsblocks (for example#/definitions/MyEnum)
Key Types
Shared Constants
| Type | Description |
|---|---|
AsyncApiConstants |
Static constants for AsyncAPI extension keys (DotNetNamespace, DotNetType). Used across Server and Client components. |
Server (ConcordIO.AsyncApi.Server namespace)
| Type | Description |
|---|---|
AsyncApiDocumentGenerator |
Generates AsyncAPI 3.x documents from discovered .NET types. Uses NJsonSchema for JSON Schema generation. |
AsyncApiDocumentWriter |
Writes AsyncAPI documents to YAML or JSON files. |
TypeDiscoveryService |
Discovers types from assemblies using pattern matching (wildcards, interfaces, base classes). |
DiscoveredType |
Record representing a discovered type with its MessageKind. |
MessageTypePattern |
Record representing a type discovery pattern with its kind. |
MessageKind |
Enum: Event or Command. |
Client (ConcordIO.AsyncApi.Client namespace)
| Type | Description |
|---|---|
AsyncApiContractGenerator |
Generates C# contract types from AsyncAPI documents using NJsonSchema code generation. |
ExternalTypeResolver |
Resolves types from external assemblies to skip generation of already-defined types. |
ContractGeneratorSettings |
Configurable settings for code generation (class style, annotations, type mappings). |
TypeInfo |
Record representing a type to be generated or referenced. |
GeneratedSourceFile |
Record representing a generated C# source file. |
ContractGenerationResult |
Result of the contract generation process. |
GeneratedClassStyle |
Enum: Poco or Record. |
Dependencies
| Library | Purpose |
|---|---|
Neuroglia.AsyncApi.Core |
AsyncAPI 3.x document model |
NJsonSchema |
JSON Schema generation from .NET types |
NJsonSchema.CodeGeneration.CSharp |
C# code generation from JSON Schema |
Neuroglia.Serialization |
JSON/YAML serialization |
Related Projects
- ConcordIO.AsyncApi.Server — MSBuild task package for server-side AsyncAPI generation
- ConcordIO.AsyncApi.Client — MSBuild task package for client-side C# generation
- ConcordIO.Tool — CLI tool for contract package management
License
Licensed under the MIT License.
| 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 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. |
-
net10.0
- Neuroglia.AsyncApi.Core (>= 3.0.6)
- Neuroglia.Serialization (>= 4.20.0)
- Neuroglia.Serialization.YamlDotNet (>= 4.20.0)
- NJsonSchema (>= 11.3.2)
- NJsonSchema.CodeGeneration.CSharp (>= 11.3.2)
-
net8.0
- Neuroglia.AsyncApi.Core (>= 3.0.6)
- Neuroglia.Serialization (>= 4.20.0)
- Neuroglia.Serialization.YamlDotNet (>= 4.20.0)
- NJsonSchema (>= 11.3.2)
- NJsonSchema.CodeGeneration.CSharp (>= 11.3.2)
-
net9.0
- Neuroglia.AsyncApi.Core (>= 3.0.6)
- Neuroglia.Serialization (>= 4.20.0)
- Neuroglia.Serialization.YamlDotNet (>= 4.20.0)
- NJsonSchema (>= 11.3.2)
- NJsonSchema.CodeGeneration.CSharp (>= 11.3.2)
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 |
|---|---|---|
| 0.8.7 | 108 | 2/21/2026 |