Novolis.Storage.Abstractions
2026.1.1.53
dotnet add package Novolis.Storage.Abstractions --version 2026.1.1.53
NuGet\Install-Package Novolis.Storage.Abstractions -Version 2026.1.1.53
<PackageReference Include="Novolis.Storage.Abstractions" Version="2026.1.1.53" />
<PackageVersion Include="Novolis.Storage.Abstractions" Version="2026.1.1.53" />
<PackageReference Include="Novolis.Storage.Abstractions" />
paket add Novolis.Storage.Abstractions --version 2026.1.1.53
#r "nuget: Novolis.Storage.Abstractions, 2026.1.1.53"
#:package Novolis.Storage.Abstractions@2026.1.1.53
#addin nuget:?package=Novolis.Storage.Abstractions&version=2026.1.1.53
#tool nuget:?package=Novolis.Storage.Abstractions&version=2026.1.1.53
Novolis.Storage.Abstractions
Entity repository and event-journal contracts with AddStorage DI composition. Game-specific command/event apply logic belongs in product repos, not here.
Install
dotnet add package Novolis.Storage.Abstractions
Quick start — repositories
using Microsoft.Extensions.DependencyInjection;
using Novolis.Storage.Abstractions;
using Novolis.Storage.InMemory; // or Json, LiteDb, Sqlite
services.AddStorage(builder => builder.AddInMemoryProvider());
var repo = sp.GetRequiredService<IRepository<MyEntity>>();
await repo.UpsertAsync(entity, cancellationToken);
Optional per-type provider override (register a concrete IRepositoryProvider first):
services.AddStorage(builder =>
{
builder.AddJsonProvider(o => o.RootPath = root);
builder.BindRepository<SpecialEntity, MyCustomRepositoryProvider>();
});
Quick start — event journal (contracts)
var session = SessionId.CreateNow();
var stream = StreamId.FromSession(session);
await eventStore.PublishAsync(stream, new { Kind = "joined" }, cancellationToken);
IEventStore implementations are not shipped in this package — only the contracts.
API — repositories
| Type | Role |
|---|---|
IHasId |
Entity marker: Guid Id { get; } |
IHasName |
Named-value marker: string Name { get; } |
IRepository<T> |
All(), TryGetAsync, UpsertAsync, DeleteAsync |
IRepositoryProvider |
Backend hook: Create<T>() |
IRepositoryFactory |
Resolves IRepository<T> from DI |
IIdProvider / GuidV7IdProvider |
UUID v7 id generation |
IStorageBuilder |
Fluent builder with Services |
StorageServiceCollectionExtensions.AddStorage |
Registers factory + id provider |
StorageTypeBindingExtensions.BindRepository |
Per-type provider binding |
API — event journal
| Type | Role |
|---|---|
StreamId |
Partition key for an ordered log |
SessionId |
Sortable session key (base62 + ticks): CreateNow(), FromTicks, Parse |
EventEnvelope |
StreamId + opaque Payload + TimestampUtc |
IEventStore |
Append and subscribe |
IReadableEventStore |
List events for a stream |
ISnapshotCapableEventStore |
Optional snapshot compaction |
Related
| Package | Role |
|---|---|
Novolis.Storage.Json |
File-per-entity repositories |
Novolis.Storage.AzureBlob |
Typed JSON blob containers keyed by IHasName |
Novolis.Storage.LiteDb |
LiteDB repositories |
Novolis.Storage.InMemory |
In-memory repositories |
Novolis.Storage.Sqlite |
SQLite repositories |
| 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.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
NuGet packages (13)
Showing the top 5 NuGet packages that depend on Novolis.Storage.Abstractions:
| Package | Downloads |
|---|---|
|
Novolis.Storage.Sqlite
SQLite-backed IRepository provider. |
|
|
Novolis.Storage.InMemory
In-memory IRepository provider for tests and playtest profiles. |
|
|
Novolis.Storage.LiteDb
LiteDB-backed IRepository provider. |
|
|
Novolis.Storage.Json
JSON file-per-entity IRepository provider. |
|
|
Novolis.Storage.AzureTables
Azure Table Storage IRepository provider. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.1.1.53 | 0 | 10/4/2026 |
| 2026.1.1.52 | 0 | 10/4/2026 |
| 2026.1.1.51 | 0 | 10/4/2026 |
| 2026.1.1.50 | 53 | 10/3/2026 |
| 2026.1.1.49 | 43 | 10/3/2026 |
| 2026.1.1.48 | 56 | 10/3/2026 |
| 2026.1.1.46 | 44 | 10/3/2026 |
| 2026.1.1.45 | 40 | 10/3/2026 |
| 2026.1.1.42 | 40 | 10/3/2026 |
| 2026.1.1.41 | 42 | 10/3/2026 |
| 2026.1.1.37 | 65 | 10/1/2026 |
| 2026.1.1.36 | 108 | 9/30/2026 |