JG.CacheKit
1.0.0
dotnet add package JG.CacheKit --version 1.0.0
NuGet\Install-Package JG.CacheKit -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="JG.CacheKit" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="JG.CacheKit" Version="1.0.0" />
<PackageReference Include="JG.CacheKit" />
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 JG.CacheKit --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: JG.CacheKit, 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 JG.CacheKit@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=JG.CacheKit&version=1.0.0
#tool nuget:?package=JG.CacheKit&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
dotnet-cache-kit
In-memory and distributed caching abstraction for .NET. Unified API across memory and Redis backends, with stampede protection, TTL policies, cache-aside pattern, and stale-while-revalidate support — designed for high-throughput services where cache misses are expensive.
Features
- Unified API — Same interface for in-memory and distributed backends; swap providers without code changes
- Stampede Protection — Lock-based cache population prevents thundering herd on cold keys
- Stale-While-Revalidate — Serve stale data while refreshing in the background; never block on cache miss
- TTL Policies — Absolute and sliding expiration with per-key and per-category defaults
- Cache-Aside — Built-in
GetOrSetAsyncwith factory delegate for clean cache-aside patterns - Serialization — Pluggable serialization (System.Text.Json default, MessagePack optional)
- Tagging — Tag cache entries for bulk invalidation (e.g., invalidate all entries tagged "user:123")
- Metrics — Hit/miss counters, eviction tracking, and cache size reporting
- Single Registration —
services.AddCacheKit()
Installation
dotnet add package JG.CacheKit
Quick Start
builder.Services.AddCacheKit(options =>
{
options.UseMemory(); // In-memory for dev
// options.UseDistributed(); // Use with any registered IDistributedCache
options.DefaultTtl = TimeSpan.FromMinutes(5);
options.EnableStampedeProtection = true;
});
// Usage
public class ProductService(ICacheKit cache)
{
public async Task<Product> GetProductAsync(string id) =>
await cache.GetOrSetAsync(
$"product:{id}",
async ct => await LoadProductAsync(id, ct),
new CacheEntryOptions { Ttl = TimeSpan.FromMinutes(10) });
}
Documentation
- API Reference — Full API documentation and examples
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
Licensed under the Apache License 2.0. See LICENSE for details.
Ready to get started? Install via NuGet and check out the API reference.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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.
-
net8.0
- Microsoft.Extensions.Caching.Abstractions (>= 8.0.0)
- Microsoft.Extensions.DependencyInjection (>= 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Options (>= 8.0.0)
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 |
|---|---|---|
| 1.0.0 | 80 | 2/24/2026 |