Cirreum.Connections 1.0.0

Additional Details

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.

The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package Cirreum.Connections --version 1.0.0
                    
NuGet\Install-Package Cirreum.Connections -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Cirreum.Connections" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Cirreum.Connections" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Cirreum.Connections" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Cirreum.Connections --version 1.0.0
                    
#r "nuget: Cirreum.Connections, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Cirreum.Connections@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Cirreum.Connections&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Cirreum.Connections&version=1.0.0
                    
Install as a Cake Tool

Cirreum.Connections

NuGet Version NuGet Downloads GitHub Release License .NET

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 transport
  • Cirreum.Runtime.Connections.WebSockets — raw WebSocket transport
  • Cirreum.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 in Items.
  • 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

  1. Be conservative with new abstractions
    The API surface must remain stable and meaningful.

  2. Limit dependency expansion
    Only add foundational, version-stable dependencies.

  3. Favor additive, non-breaking changes
    Breaking changes ripple through the entire ecosystem.

  4. Include thorough unit tests
    All primitives and patterns should be independently testable.

  5. Document architectural decisions
    Context and reasoning should be clear for future maintainers.

  6. 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • 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