Cirreum.Connections
1.0.0
This package is deprecated and this repository is archived.
The runtime extension packages named in this package's README — Cirreum.Runtime.Connections.SignalR,
Cirreum.Runtime.Connections.WebSockets, and Cirreum.Runtime.Connections — were never published and
do not exist.
The server side of a long-lived Cirreum connection ships today in Cirreum.Services.Server. The
caller side ships as Cirreum.RemoteConnections.SignalR and Cirreum.RemoteConnections.WebSockets.
dotnet add package Cirreum.Connections --version 1.0.0
NuGet\Install-Package Cirreum.Connections -Version 1.0.0
<PackageReference Include="Cirreum.Connections" Version="1.0.0" />
<PackageVersion Include="Cirreum.Connections" Version="1.0.0" />
<PackageReference Include="Cirreum.Connections" />
paket add Cirreum.Connections --version 1.0.0
#r "nuget: Cirreum.Connections, 1.0.0"
#:package Cirreum.Connections@1.0.0
#addin nuget:?package=Cirreum.Connections&version=1.0.0
#tool nuget:?package=Cirreum.Connections&version=1.0.0
Cirreum.Connections
Server-side abstractions for long-lived Cirreum connections
Overview
Cirreum.Connections defines the foundational abstractions for managing long-lived bidirectional connections (SignalR, WebSockets) in the Cirreum framework. It provides the two-scope model (per-connection + per-invocation), identity lifecycle hooks, and the server-initiated push primitive that transport adapters build on.
This package is transport-agnostic. For concrete transport implementations, install a runtime extension:
Cirreum.Runtime.Connections.SignalR— SignalR transportCirreum.Runtime.Connections.WebSockets— raw WebSocket transportCirreum.Runtime.Connections— both transports
Key Abstractions
| Type | Purpose |
|---|---|
IRealtimeConnection |
Per-connection state: ConnectionId, User, Items, ConnectedAtUtc, Transport |
IRealtimeInvocation |
Per-message state: Connection, Items, Services (DI scope), Aborted |
IRealtimeConnectionAccessor |
AsyncLocal-backed ambient accessor for the current connection |
IRealtimeInvocationAccessor |
AsyncLocal-backed ambient accessor for the current invocation |
IConnectionAuthLifecycle |
App-side hook for identity resolution at connect/disconnect |
IRealtimeOutbound |
Server-initiated fire-and-forget push over the active connection |
ConnectionContextKeys |
Well-known Items dictionary keys for connection-bag slots |
Two-Scope Model
Long-lived connections operate at two distinct scopes simultaneously:
- Per-connection — lifetime from upgrade through disconnect. Holds cached identity (
ClaimsPrincipal),IUserState, and connection-stable state inItems. - Per-invocation — lifetime of a single inbound message. Fresh DI scope per message, correlation IDs, audit context in
Items. Prevents state leaking across messages.
Documentation
Contribution Guidelines
Be conservative with new abstractions
The API surface must remain stable and meaningful.Limit dependency expansion
Only add foundational, version-stable dependencies.Favor additive, non-breaking changes
Breaking changes ripple through the entire ecosystem.Include thorough unit tests
All primitives and patterns should be independently testable.Document architectural decisions
Context and reasoning should be clear for future maintainers.Follow .NET conventions
Use established patterns from Microsoft.Extensions.* libraries.
Versioning
Cirreum.Connections follows Semantic Versioning:
- Major - Breaking API changes
- Minor - New features, backward compatible
- Patch - Bug fixes, backward compatible
Given its foundational role, major version bumps are rare and carefully considered.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Cirreum Foundation Framework
Layered simplicity for modern .NET
| 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
- No dependencies.
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 |
|---|