Foundatio.Utf8Json
v13.0.0-beta3Pre-release
net8.0net10.0
Pluggable foundation blocks for building distributed apps.
Published
Feb 14, 2026
8mo ago
Total Downloads
294.1K
294,069
Install
dotnet add package Foundatio.Utf8Json --version 13.0.0-beta3
| Product | Versions |
|---|---|
| .NET |
README
Pluggable foundation blocks for building loosely coupled distributed apps.
β¨ Why Choose Foundatio?
- π Pluggable implementations - Swap Redis, Azure, AWS, or in-memory with no code changes
- π§ͺ Developer friendly - In-memory implementations for fast local development and testing
- π DI native - Built for Microsoft.Extensions.DependencyInjection
- π― Interface-first - Code against abstractions, not implementations
- β‘ Production ready - Battle-tested in high-scale applications
- π Consistent APIs - Same patterns across caching, queues, storage, and more
π§± Core Building Blocks
| Feature | Description |
|---|---|
| Caching | In-memory, Redis, and hybrid caching with automatic invalidation |
| Queues | Reliable message queuing with Redis, Azure, AWS SQS |
| Locks | Distributed locking and throttling |
| Messaging | Pub/sub with Redis, RabbitMQ, Kafka, Azure Service Bus |
| Jobs | Background job processing with queue integration |
| File Storage | Unified file API for disk, S3, Azure Blob, and more |
| Resilience | Retry policies, circuit breakers, and timeouts |
π Quick Start
dotnet add package Foundatio
// Caching
ICacheClient cache = new InMemoryCacheClient();
await cache.SetAsync("user:123", user, TimeSpan.FromMinutes(5));
var cached = await cache.GetAsync<User>("user:123");
// Queuing
IQueue<WorkItem> queue = new InMemoryQueue<WorkItem>();
await queue.EnqueueAsync(new WorkItem { Data = "Hello" });
var entry = await queue.DequeueAsync();
// File Storage
IFileStorage storage = new InMemoryFileStorage();
await storage.SaveFileAsync("docs/readme.txt", "Hello World");
// Distributed Locks
ILockProvider locker = new CacheLockProvider(cache, messageBus);
await using var handle = await locker.AcquireAsync("resource-key");
π¦ Provider Implementations
| Provider | Caching | Queues | Messaging | Storage | Locks |
|---|---|---|---|---|---|
| In-Memory | β | β | β | β | β |
| Redis | β | β | β | β | β |
| Azure Storage | β | β | |||
| Azure Service Bus | β | β | |||
| AWS (S3/SQS/SNS) | β | β | β | ||
| RabbitMQ | β | ||||
| Kafka | β | ||||
| Minio | β | ||||
| Aliyun | β | ||||
| SFTP | β |
π Learn More
Core Features
- Getting Started - Installation and setup
- Caching - In-memory, Redis, and hybrid caching with invalidation
- Queues - FIFO message delivery with lock renewal and retry policies
- Locks - Distributed locking with null handling patterns
- Messaging - Pub/sub with size limits and notification patterns
- File Storage - Unified file API across providers
- Jobs - Background job processing and hosted service integration
Advanced Topics
- Resilience - Retry policies, circuit breakers, and timeouts
- Serialization - Serializer configuration and performance
- Dependency Injection - DI setup and patterns
- Configuration - Options and settings
π¦ CI Packages (Feedz)
Want the latest CI build before it hits NuGet? Add the Feedz source and install the pre-release version:
dotnet nuget add source https://f.feedz.io/foundatio/foundatio/nuget -n foundatio-feedz
dotnet add package Foundatio --prerelease
Or add to your NuGet.config:
<configuration>
<packageSources>
<add key="foundatio-feedz" value="https://f.feedz.io/foundatio/foundatio/nuget" />
</packageSources>
<packageSourceMapping>
<packageSource key="foundatio-feedz">
<package pattern="Foundatio.*" />
</packageSource>
</packageSourceMapping>
</configuration>
π€ Contributing
Contributions are welcome! Please feel free to submit a Pull Request. See our documentation for development guidelines.
Development Setup:
- Clone the repository
- Open
Foundatio.slnxin Visual Studio or VS Code - Run
dotnet buildto build - Run
dotnet testto run tests
π Related Projects
- Foundatio.Mediator - Blazingly fast, convention-based C# mediator powered by source generators
π License
Apache 2.0 License
Thanks to all the people who have contributed
Changes from Previous Version
No structural changes between v13.0.0-beta2 and v13.0.0-beta3.
Adoption Assessment
A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.
This version is marked prerelease. Validate its API and upgrade path before production use.Compatibility metadata lists 2 target frameworks; confirm the exact target used by your application.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.