Faactory.Canonical.AspNetCore
0.1.0
dotnet add package Faactory.Canonical.AspNetCore --version 0.1.0
NuGet\Install-Package Faactory.Canonical.AspNetCore -Version 0.1.0
<PackageReference Include="Faactory.Canonical.AspNetCore" Version="0.1.0" />
<PackageVersion Include="Faactory.Canonical.AspNetCore" Version="0.1.0" />
<PackageReference Include="Faactory.Canonical.AspNetCore" />
paket add Faactory.Canonical.AspNetCore --version 0.1.0
#r "nuget: Faactory.Canonical.AspNetCore, 0.1.0"
#:package Faactory.Canonical.AspNetCore@0.1.0
#addin nuget:?package=Faactory.Canonical.AspNetCore&version=0.1.0
#tool nuget:?package=Faactory.Canonical.AspNetCore&version=0.1.0
Canonical ASP.NET Core Integration
ASP.NET Core HTTP and WebSocket integration for Canonical API.
Setup
var builder = WebApplication.CreateBuilder( args );
builder.Services.AddCanonicalApi();
var app = builder.Build();
app.MapCanonical( "apps.deploy", DeployAsync );
HTTP
The application owns its routes and supplies the canonical endpoint name:
app.MapPost(
"/apps/deploy",
( DeployRequest request, HttpContext context ) =>
context.ExecuteCanonicalAsync( "apps.deploy", request )
);
The default HTTP writer supports one response or error. Canonical errors use ASP.NET Core Problem Details when it is registered, with JSON as the fallback.
WebSockets
app.UseWebSockets();
app.Map(
"/canonical",
context => context.RunCanonicalWebSocketAsync()
);
The built-in protocol supports concurrent requests, events, text streams, binary streams, responses, and errors.
Before builder.Build(), limits can be configured with CanonicalWebSocketOptions:
builder.Services.Configure<CanonicalWebSocketOptions>( options =>
{
options.MaximumConcurrentRequests = 64;
options.MaximumMessageSize = 1024 * 1024;
});
Custom WebSocket protocols
RunCanonicalWebSocketAsync() is the optional, opinionated protocol implementation.
For a different wire format, accept and parse the WebSocket in the application, implement ICanonicalApiWriter, and execute each request directly:
await context.ExecuteCanonicalAsync(
name,
requestId,
payload,
writer,
cancellationToken
);
The application owns message parsing, framing, correlation, and socket lifetime. The canonical runtime remains unchanged.
| 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
- Faactory.Canonical (>= 0.1.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 |
|---|---|---|
| 0.1.0 | 107 | 8/27/2026 |