Cirreum.Kernel
1.0.0
See the version list below for details.
dotnet add package Cirreum.Kernel --version 1.0.0
NuGet\Install-Package Cirreum.Kernel -Version 1.0.0
<PackageReference Include="Cirreum.Kernel" Version="1.0.0" />
<PackageVersion Include="Cirreum.Kernel" Version="1.0.0" />
<PackageReference Include="Cirreum.Kernel" />
paket add Cirreum.Kernel --version 1.0.0
#r "nuget: Cirreum.Kernel, 1.0.0"
#:package Cirreum.Kernel@1.0.0
#addin nuget:?package=Cirreum.Kernel&version=1.0.0
#tool nuget:?package=Cirreum.Kernel&version=1.0.0
Cirreum.Kernel
Cirreum's foundational abstractions — cross-host primitives every Cirreum app builds on.
Overview
Cirreum.Kernel is the foundational base of the Cirreum framework. It contains the cross-host abstractions, contracts, value types, and sentinels that every Cirreum package consumes — directly or transitively — regardless of host (Server, WebAssembly, Serverless).
Kernel is dependency-light and deliberately small. It defines:
- Identity & security primitives —
IUserState,IUserStateAccessor,IUserSession,UserStateBase,IApplicationUser,IApplicationUserResolver,IOwnedApplicationUser,AnonymousUser,AuthenticationBoundary,ClaimsHelper - User profile model —
UserProfile,UserProfileAddress,UserProfileMembership,UserProfileOrganization,IUserProfileEnricher - Authentication events & keys —
AuthenticationContextKeysand theIAuthenticationEventfamily (IAuthenticationEventPublisher,IAuthenticationEventHandler, plus theCredentialRevoked/SessionTerminationRequested/UserAccountDisabled/GrantsInvalidatedrecords) - Conductor markers —
INotification,INotificationHandler(the Result-free notification primitives; the rest of the Conductor surface lives inCirreum.Common) - Message registry —
IMessageRegistry,MessageDefinition,MessageProperty,MessageVersionAttribute,MessageRegistryBase,MessageScanner - Framework bootstrap —
IDomainApplicationBuilder,DomainContext,DomainServicesBuilder,AssemblyScanner,IDomainContextInitializer,DomainRuntimeType,DomainFeatureResolver,IDomainObject - Environment, time & enums —
IDomainEnvironment,IDateTimeClock,Timing,IdentityProviderType - State foundation —
IApplicationState(the marker interface other state contracts extend) - Health, diagnostics & utilities —
IStartedStatus,CirreumTelemetry,InternetDomainValidator,MissingResource, plus extension methods and SmartFormat command sources
Other Cirreum packages — Common, Shared, the host infrastructure, and the runtime — build on Kernel.
Where it fits
Cirreum.Kernel ← this package (alongside Cirreum.Result, Cirreum.Exceptions)
Cirreum.Common — cross-host contracts (Conductor, the Authorization pillar, Invocation)
Cirreum.Shared — default implementations (also Cirreum.AuthenticationProvider, ...)
Cirreum.Services.{Host} — host infrastructure (Cirreum.Authentication.{Scheme}, ...)
Cirreum.Runtime.{Host} — composition (Cirreum.Runtime.{Track}Provider)
Cirreum.Runtime.{Track} — app-facing umbrellas
Kernel does NOT reference its foundation peers (Cirreum.Result, Cirreum.Exceptions). Other Cirreum packages consume Kernel and those peers as needed.
Contribution Guidelines
Be conservative with new abstractions
The API surface must remain stable and meaningful — Kernel sits at the foundation; changes ripple through every Cirreum package.Limit dependency expansion
Only add foundational, version-stable dependencies. Kernel must remain dependency-light to qualify as the framework's base.Favor additive, non-breaking changes
Breaking changes in Kernel cascade through every dependent package and every Cirreum app. Major version bumps are rare.Include thorough unit tests
All primitives should be independently testable.Document architectural decisions
Context and reasoning should be clear for future maintainers.Follow .NET conventions
Use established patterns fromMicrosoft.Extensions.*libraries.
Versioning
Cirreum.Kernel 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
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Telemetry.Abstractions (>= 10.6.0)
- OpenTelemetry.Api (>= 1.15.3)
- OpenTelemetry.Extensions.Hosting (>= 1.15.3)
- SmartFormat (>= 3.6.1)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Cirreum.Kernel:
| Package | Downloads |
|---|---|
|
Cirreum.Contracts
The contract surface of the Cirreum framework. The cross-host abstractions, vocabulary, and value types a Cirreum application programs against — the Conductor (CQRS) surface, Caching, State, Presence, RemoteServices, FileSystem, the Invocation seam, and the Authorization-pillar vocabulary and contracts. Implementations ship in Cirreum.Domain. The cross-host triad: Cirreum.Kernel (primitives) → Cirreum.Contracts (contracts) → Cirreum.Domain (implementations). |
|
|
Cirreum.Messaging.Distributed
Messaging track — distributed-envelope orchestration for the Cirreum framework. DistributedMessage, DistributedMessageEnvelope, DistributedMessageRegistry, routing and batching contracts, options. Sibling to Cirreum.Messaging (generic queue/topic/transport abstractions); composes on top of it. |
|
|
Cirreum.Runtime.Authentication
App-facing umbrella for the Authentication pillar. Provides AddAuthentication() and the CirreumAuthenticationBuilder type. Transitively references all six Cirreum.Authentication.* schemes (ApiKey, SignedRequest, SessionTicket, OIDC, Entra, External) — apps install this single package to get the full Authentication track. |
GitHub repositories
This package is not used by any popular GitHub repositories.