SkillAgentSearch skills...

Foundatio.AzureStorage

Foundatio Azure Storage

Install / Use

/learn @FoundatioFx/Foundatio.AzureStorage
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

FoundatioFoundatio

Build status NuGet Version feedz.io Discord

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.AzureStorage
// Queuing
IQueue<WorkItem> queue = new AzureStorageQueue<WorkItem>(o => o
    .ConnectionString("UseDevelopmentStorage=true"));
await queue.EnqueueAsync(new WorkItem { Data = "Hello" });
var entry = await queue.DequeueAsync();

// File Storage
IFileStorage storage = new AzureFileStorage(o => o
    .ConnectionString("UseDevelopmentStorage=true")
    .ContainerName("my-container"));
await storage.SaveFileAsync("docs/readme.txt", "Hello World");

📦 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

👉 Complete Documentation

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

📦 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.AzureStorage --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:

  1. Clone the repository
  2. Open Foundatio.AzureStorage.slnx in Visual Studio or VS Code
  3. Run dotnet build to build
  4. Run dotnet test to run tests

📄 License

Apache 2.0 License

Thanks to all the people who have contributed

contributors

View on GitHub
GitHub Stars22
CategoryDevelopment
Updated8d ago
Forks13

Languages

C#

Security Score

90/100

Audited on Mar 27, 2026

No findings