A polycloud .NET library providing a unified API for blob storage and messaging across AWS, Azure, GCP, FTP, and other providers.
FluentStorage is a .NET library that provides a unified abstraction layer for cloud storage and messaging services. It solves the problem of vendor lock-in and complexity by offering a single API to interact with multiple providers like AWS S3, Azure Blob Storage, GCP Storage, FTP, and messaging services such as AWS SQS and Azure Service Bus.
.NET developers building cloud-native applications that need to interact with multiple cloud storage or messaging providers, or those seeking to avoid vendor lock-in.
Developers choose FluentStorage for its consistent API across providers, ease of switching between cloud services, and support for polycloud architectures without rewriting application code.
A polycloud .NET cloud storage abstraction layer. Provides Blob storage (AWS S3, GCP, FTP, SFTP, Azure Blob/File/Event Hub/Data Lake) and Messaging (AWS SQS, Azure Queue/ServiceBus). Supports .NET 5+ and .NET Standard 2.0+. Pure C#.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a single API for blob storage and messaging across AWS, Azure, GCP, and other providers, reducing vendor lock-in as highlighted in the README's architecture diagrams.
Includes in-memory and on-disk implementations for fast local testing without cloud dependencies, mentioned in the features section.
Supports encryption and compression through data transformation sinks, enabling secure and efficient storage operations per the wiki documentation.
Supports major cloud platforms and protocols like AWS S3, Azure Blob, GCP Storage, FTP, and SFTP, with regular updates adding new providers like MinIO and Wasabi in 2024.
The unified API may not expose all niche or advanced features of individual cloud providers, potentially requiring workarounds for specific use cases.
Requires installing separate NuGet packages for each provider, which can bloat dependencies and complicate updates in larger projects.
The abstraction layer might introduce slight performance latency compared to using native SDKs directly, which could impact high-throughput applications.