Skip to main content
net10.0

Inert Koan storage contracts for providers, services, objects, capabilities, listing, stat, copy, presign, and model binding.

Published
Sep 5, 2026
1mo ago
Total Downloads
4.1K
4,062

Install

dotnet add package Sylin.Koan.Storage.Abstractions --version 1.0.17
ProductVersions
.NET
net10.0

README

Sylin.Koan.Storage.Abstractions

Inert provider, service, object, capability, and binding contracts for Koan Storage. Reference this package to build a provider or a module that speaks Storage without activating routing, IO, or Entity behavior.

Install

dotnet add package Sylin.Koan.Storage.Abstractions

Applications normally install a functional provider package instead; it brings the Storage runtime transitively.

Smallest meaningful use

using Koan.Core.Capabilities;
using Koan.Storage.Abstractions;
using Koan.Storage.Abstractions.Capabilities;

public sealed class ArchiveProvider : IStorageProvider
{
    public string Name => "archive";
    public StorageProviderPlacement Placement => StorageProviderPlacement.Remote;

    public void Describe(ICapabilities caps)
        => caps.Add(StorageCaps.SequentialRead);

    // Implement Write, OpenRead, OpenReadRange, Delete, and Exists.
}

Add IStatOperations, IListOperations, IServerSideCopy, or IPresignOperations only when the provider can perform that operation, and declare the matching StorageCaps token. Storage rejects inconsistent claims during composition. Use [ProviderPriority] only when this provider should win automatic election over another provider in the same placement.

Guarantees and boundaries

  • This package contains no KoanModule; referencing it alone registers and activates nothing.
  • StorageProviderPlacement describes topology, while StorageCaps describes backend guarantees. Provider names do not imply either.
  • IStorageProvider is the backend SPI. IStorageService is the functional runtime boundary consumed by modules.
  • Result objects report observed metadata; they do not imply durability, consistency, atomicity, public access, or distributed transactions.
  • Profile policy, provider election, replication, segmentation, Entity helpers, and startup reporting belong to Sylin.Koan.Storage.

See TECHNICAL.md for contract ownership and provider-author rules.

Changes from Previous Version

No structural changes between v1.0.16 and v1.0.17.

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

Compatibility metadata lists 1 target framework; confirm the exact target used by your application.The published metadata declares 14 direct dependency entries across framework groups. Inspect the resolved dependency graph for your target framework.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.