SquidStd.Caching.Abstractions
0.7.0
dotnet add package SquidStd.Caching.Abstractions --version 0.7.0
NuGet\Install-Package SquidStd.Caching.Abstractions -Version 0.7.0
<PackageReference Include="SquidStd.Caching.Abstractions" Version="0.7.0" />
<PackageVersion Include="SquidStd.Caching.Abstractions" Version="0.7.0" />
<PackageReference Include="SquidStd.Caching.Abstractions" />
paket add SquidStd.Caching.Abstractions --version 0.7.0
#r "nuget: SquidStd.Caching.Abstractions, 0.7.0"
#:package SquidStd.Caching.Abstractions@0.7.0
#addin nuget:?package=SquidStd.Caching.Abstractions&version=0.7.0
#tool nuget:?package=SquidStd.Caching.Abstractions&version=0.7.0
<p align="center"> <img src="https://raw.githubusercontent.com/tgiachi/squid-std/main/assets/icon.png" alt="SquidStd" width="120" height="120" /> </p>
<h1 align="center">SquidStd.Caching.Abstractions</h1>
<p align="center"> <a href="https://www.nuget.org/packages/SquidStd.Caching.Abstractions/"><img src="https://img.shields.io/nuget/v/SquidStd.Caching.Abstractions.svg" alt="NuGet" /></a> <img src="https://img.shields.io/nuget/dt/SquidStd.Caching.Abstractions.svg" alt="Downloads" /> <a href="https://tgiachi.github.io/squid-std/articles/caching-abstractions.html"><img src="https://img.shields.io/badge/docs-DocFX-1390A3.svg" alt="docs" /></a> <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="license" /> </p>
Backend-agnostic caching contracts for SquidStd. It defines the typed cache-aside facade
(ICacheService), the low-level byte provider/metrics contracts, and the shared CacheService
facade that applies key-prefixing, default TTL and cache-aside once over any provider. Pick a
backend implementation (in-memory or Redis) from a companion package.
Install
dotnet add package SquidStd.Caching.Abstractions
Features
ICacheService— typedGetAsync<T>/SetAsync<T>/RemoveAsync/ExistsAsync/GetOrSetAsync<T>facade.ICacheProvider— the raw byte-level backend contract implemented per provider.CacheService— shared facade that serializes values, applies the key prefix and default TTL, and implements cache-aside.ICacheMetrics(+CacheMetricsProvider,NoOpCacheMetrics) — hit/miss/set/remove metrics.CacheOptionsandCacheConnectionString— configuration and connection parsing.
Usage
using SquidStd.Caching.Abstractions.Interfaces;
// Resolve ICacheService from a backend package (in-memory or Redis).
public Task<int> GetOrComputeAsync(ICacheService cache)
=> cache.GetOrSetAsync("answer", _ => Task.FromResult(42), TimeSpan.FromMinutes(5));
Key types
| Type | Purpose |
|---|---|
ICacheService |
Typed cache-aside facade. |
ICacheProvider |
Byte-level backend contract (per provider). |
CacheService |
Shared facade: serialization, key prefix, default TTL, cache-aside. |
ICacheMetrics |
Hit/miss/set/remove metrics sink. |
CacheOptions |
Default TTL and key prefix. |
CacheConnectionString |
scheme://host[?params] parsing into CacheOptions. |
License
MIT — part of SquidStd.
| 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
- SquidStd.Abstractions (>= 0.7.0)
- SquidStd.Core (>= 0.7.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on SquidStd.Caching.Abstractions:
| Package | Downloads |
|---|---|
|
SquidStd.Caching
Package Description |
|
|
SquidStd.Caching.Redis
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.