{"id":13800232,"url":"https://github.com/robinrodricks/FluentStorage","last_synced_at":"2025-05-13T09:31:29.174Z","repository":{"id":65349379,"uuid":"590351942","full_name":"robinrodricks/FluentStorage","owner":"robinrodricks","description":"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#.","archived":false,"fork":false,"pushed_at":"2025-03-12T15:05:32.000Z","size":38557,"stargazers_count":339,"open_issues_count":39,"forks_count":49,"subscribers_count":8,"default_branch":"develop","last_synced_at":"2025-05-07T21:11:50.743Z","etag":null,"topics":["abstraction","aws","aws-s3","aws-sqs","azure","azure-data-lake","azure-event-hub","azure-queue","azure-service-bus","blob","blob-storage","file","file-storage","ftp","ftps","gcp"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robinrodricks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":"FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"robinrodricks"}},"created_at":"2023-01-18T08:04:41.000Z","updated_at":"2025-05-02T05:09:51.000Z","dependencies_parsed_at":"2023-02-15T22:00:50.962Z","dependency_job_id":"0b3d1cc6-6eba-4734-9f4b-a26745010cff","html_url":"https://github.com/robinrodricks/FluentStorage","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinrodricks%2FFluentStorage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinrodricks%2FFluentStorage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinrodricks%2FFluentStorage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinrodricks%2FFluentStorage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robinrodricks","download_url":"https://codeload.github.com/robinrodricks/FluentStorage/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253913077,"owners_count":21983252,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abstraction","aws","aws-s3","aws-sqs","azure","azure-data-lake","azure-event-hub","azure-queue","azure-service-bus","blob","blob-storage","file","file-storage","ftp","ftps","gcp"],"created_at":"2024-08-04T00:01:10.667Z","updated_at":"2025-05-13T09:31:29.161Z","avatar_url":"https://github.com/robinrodricks.png","language":"C#","funding_links":["https://github.com/sponsors/robinrodricks"],"categories":["Cloud Storage"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\r\n\u003cimg src=\"https://github.com/robinrodricks/FluentStorage/raw/develop/.github/logo.png\" alt=\"FluentStorage\" /\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp align=\"center\"\u003e\r\n\u003ca href=\"https://www.nuget.org/packages/FluentStorage\"\u003e\u003cimg src=\"https://img.shields.io/nuget/vpre/FluentStorage.svg\" alt=\"Version\" /\u003e\u003c/a\u003e\r\n\u003ca href=\"https://www.nuget.org/packages/FluentStorage\"\u003e\u003cimg src=\"https://img.shields.io/nuget/dt/FluentStorage.svg\" alt=\"Downloads\" /\u003e\u003c/a\u003e\r\n\u003ca href=\"https://github.com/robinrodricks/FluentStorage/graphs/contributors\"\u003e\u003cimg src=\"https://img.shields.io/github/contributors/robinrodricks/FluentStorage.svg\" alt=\"GitHub contributors\" /\u003e\u003c/a\u003e\r\n\u003ca href=\"https://www.codacy.com/gh/robinrodricks/FluentStorage/dashboard\"\u003e\u003cimg src=\"https://app.codacy.com/project/badge/Grade/8bc33aa55cb8494da3a7a07dba5316f7\" alt=\"Codacy Badge\" /\u003e\u003c/a\u003e\r\n\u003ca href=\"https://github.com/robinrodricks/FluentStorage/blob/develop/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/robinrodricks/FluentStorage.svg\" alt=\"License\" /\u003e\u003c/a\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp align=\"center\"\u003e\r\n    \u003cb\u003eFluentStorage is free, but powered by\u003c/b\u003e \u003ca href=\"https://github.com/sponsors/robinrodricks\"\u003e\u003cb\u003eyour donations\u003c/b\u003e\u003c/a\u003e\r\n\u003c/p\u003e\r\n\r\n### One Interface To Rule Them All\r\n\r\nFluentStorage, originally known as Storage.NET, is a field-tested polycloud .NET cloud storage library that helps you interface with multiple cloud providers from a single unified interface.\r\n\r\nIt provides a generic interface for Blob storage across all cloud storage providers (AWS S3, GCP, FTP, SFTP, Azure Blob/File/Event Hub/Data Lake) and cloud messaging providers (AWS SQS, Azure Queue/ServiceBus).\r\n\r\nIt is written entirely in C#. Supports .NET 5+ and .NET Standard 2.0+. External dependencies are only added by FluentStorage sub-packages.\r\n\r\nFluentStorage is released under the permissive MIT License, so it can be used in both proprietary and free/open source applications.\r\n\r\n## Features\r\n\r\n* Unified API to interface with all major cloud providers for [Blobs](https://github.com/robinrodricks/FluentStorage/wiki/Blob-Storage) and [Messaging](https://github.com/robinrodricks/FluentStorage/wiki/Message-Storage).\r\n\r\n* Provides a generic interface regardless on which storage provider you are using.\r\n\r\n* Provides both synchronous and asynchronous alternatives of all methods and implements it to the best effort possible. \r\n\r\n* [Supports all popular providers](#storage-providers): AWS S3, AWS SQS, GCP Storage, FTP, FTPS, SFTP, Azure Blob \u0026 File Storage, Azure Queue Storage, Azure Service Bus, Azure Event Hub, Azure Data Lake Store, Azure Key Vault, DigitalOcean Spaces, MinIO, Wasabi.\r\n\r\n* [Supports providers using individual Nuget packages](#packages), with hassle-free configuration and zero learning path.\r\n\r\n* Implements [in-memory and on-disk versions](https://github.com/robinrodricks/FluentStorage/wiki/Standard-Storage) of all the abstractions, therefore you can develop fast on a local machine or use vendor-free serverless implementations for parts of your application.\r\n\r\n* Implements [data transformation sinks](https://github.com/robinrodricks/FluentStorage/wiki/Data-Transformation) for encryption and compression.\r\n\r\n* Attempts to enforce idential behavior on all implementations of storage interfaces to the smallest details possible, and contains many test specifications which will help you to add another provider.\r\n\r\n\r\n\r\n## Architecture\r\n\r\n### Without FluentStorage\r\n\r\nToday, most cloud applications and services are developed against vendor-specific APIs like Amazon S3 API or Azure Blob API for cloud storage capabilities.\r\n\r\nUsing multiple vendor-specific APIs can increase your vendor lock-in, and makes your application more complex and harder to maintain. And sometimes these APIs may not offer all the functionality you need for your application. Polycloud also becomes very hard to implement.\r\n\r\n![Arch](https://raw.githubusercontent.com/robinrodricks/FluentStorage/develop/.github/arch-without.png)\r\n\r\n### With FluentStorage\r\n\r\nWhat if we had a single, consistent API to deal with all types of cloud storage? That would solve these issues and bring more flexibility in switching cloud providers or cloud services.\r\n\r\nThus was born the idea for FluentStorage.\r\n\r\nYou can use a single, consistent API to interact with multiple cloud providers, where each provider is supported through its own special Nuget package.\r\n\r\n![Arch](https://raw.githubusercontent.com/robinrodricks/FluentStorage/develop/.github/arch-with.png)\r\n\r\n\r\n\r\n## Benefits\r\n\r\n1. Easy to write code that is not tied to a specific cloud provider.\r\n\r\n2. Easily switch between different providers without having to rewrite any part of their application or service.\r\n\r\n3. Easily migrate to using a new storage technology for some part of your cloud application (S3 buckets, Azure Blobs, FTP, etc.)\r\n\r\n4. Natively implement polycloud (support for multiple public clouds)\r\n\r\n\r\n\r\n## Storage Providers\r\n\r\nFluentStorage supports the following cloud storage providers:\r\n\r\n| Storage Provider                                                            | Documentation      |\r\n| --------------------------------------------------------------------------- | ------------------------- |\r\n| **[AWS S3](https://aws.amazon.com/s3/)**                                    | [FluentStorage.AWS](https://github.com/robinrodricks/FluentStorage/wiki/AWS-S3-Storage#connect-to-aws-s3)         |\r\n| **[Azure Blobs](https://azure.microsoft.com/en-us/products/storage/blobs)** | [FluentStorage.Azure.Blobs](https://github.com/robinrodricks/FluentStorage/wiki/Azure-Blob-Storage) |\r\n| **[Azure Files](https://azure.microsoft.com/en-us/products/storage/files)** | [FluentStorage.Azure.Files](https://github.com/robinrodricks/FluentStorage/wiki/Azure-Blob-Storage) |\r\n| **[Azure DataLake](https://azure.microsoft.com/en-us/solutions/data-lake)** | [FluentStorage.Azure.DataLake](https://github.com/robinrodricks/FluentStorage/wiki/Azure-Data-Lake) |\r\n| **[Google Cloud Storage](https://cloud.google.com/storage)**                | [FluentStorage.GCP](https://github.com/robinrodricks/FluentStorage/wiki/Google-Cloud-Storage)         |\r\n| **[MinIO](https://min.io/)**                                                | [FluentStorage.AWS -\u003e MinIO](https://github.com/robinrodricks/FluentStorage/wiki/MinIO-Storage)         |\r\n| **[DigitalOcean Spaces](https://www.digitalocean.com/products/spaces)**     | [FluentStorage.AWS -\u003e DigitalOcean Spaces](https://github.com/robinrodricks/FluentStorage/wiki/DigitalOcean-Spaces-Storage)  | \r\n| **[Wasabi](https://wasabi.com/)**                                           | [FluentStorage.AWS -\u003e Wasabi](https://github.com/robinrodricks/FluentStorage/wiki/AWS-S3-Storage#connect-to-wasabi)         |\r\n\r\n\r\n\r\n## Packages\r\n\r\nStable binaries are released on NuGet, and contain everything you need to use Cloud Storage in your .NET app.\r\n\r\n\r\n|       \t\t| Package      \t\t| Latest Version\t|  Downloads\t|  Documentation\t| \r\n|---------------|---------------\t\t|-----------\t|-----------\t\t|-----------\t\t|\r\n| \u003cimg src=\"https://raw.githubusercontent.com/robinrodricks/FluentStorage/develop/.github/providers/local.png\" width=\"32\"\u003e\u003c/img\u003e| **[FluentStorage](https://www.nuget.org/packages/FluentStorage)**      \t|     [![Version](https://img.shields.io/nuget/vpre/FluentStorage.svg)](https://www.nuget.org/packages/FluentStorage) \t\t|  [![Downloads](https://img.shields.io/nuget/dt/FluentStorage.svg)](https://www.nuget.org/packages/FluentStorage) | [Standard](https://github.com/robinrodricks/FluentStorage/wiki/Standard-Storage) |\r\n| \u003cimg src=\"https://raw.githubusercontent.com/robinrodricks/FluentStorage/develop/.github/providers/aws.png\" width=\"32\"\u003e\u003c/img\u003e| **[FluentStorage.AWS](https://www.nuget.org/packages/FluentStorage.AWS)**      \t|     [![Version](https://img.shields.io/nuget/vpre/FluentStorage.AWS.svg)](https://www.nuget.org/packages/FluentStorage.AWS) \t\t|  [![Downloads](https://img.shields.io/nuget/dt/FluentStorage.AWS.svg)](https://www.nuget.org/packages/FluentStorage.AWS) | [S3](https://github.com/robinrodricks/FluentStorage/wiki/AWS-S3-Storage), [SQS](https://github.com/robinrodricks/FluentStorage/wiki/AWS-SQS) |\r\n| \u003cimg src=\"https://raw.githubusercontent.com/robinrodricks/FluentStorage/develop/.github/providers/gcp.png\" width=\"32\"\u003e\u003c/img\u003e| **[FluentStorage.GCP](https://www.nuget.org/packages/FluentStorage.GCP)**      \t|     [![Version](https://img.shields.io/nuget/vpre/FluentStorage.GCP.svg)](https://www.nuget.org/packages/FluentStorage.GCP) \t\t|  [![Downloads](https://img.shields.io/nuget/dt/FluentStorage.GCP.svg)](https://www.nuget.org/packages/FluentStorage.GCP) | [GCP](https://github.com/robinrodricks/FluentStorage/wiki/Google-Cloud-Storage) |\r\n| \u003cimg src=\"https://raw.githubusercontent.com/robinrodricks/FluentStorage/develop/.github/providers/databricks.png\" width=\"32\"\u003e\u003c/img\u003e| **[FluentStorage.Databricks](https://www.nuget.org/packages/FluentStorage.Databricks)**      \t|     [![Version](https://img.shields.io/nuget/vpre/FluentStorage.Databricks.svg)](https://www.nuget.org/packages/FluentStorage.Databricks) \t\t|  [![Downloads](https://img.shields.io/nuget/dt/FluentStorage.Databricks.svg)](https://www.nuget.org/packages/FluentStorage.Databricks) | [Databricks](https://github.com/robinrodricks/FluentStorage/wiki/Databricks-Storage) |\r\n| \u003cimg src=\"https://raw.githubusercontent.com/robinrodricks/FluentStorage/develop/.github/providers/ftp.png\" width=\"32\"\u003e\u003c/img\u003e| **[FluentStorage.FTP](https://www.nuget.org/packages/FluentStorage.FTP)**      \t|     [![Version](https://img.shields.io/nuget/vpre/FluentStorage.FTP.svg)](https://www.nuget.org/packages/FluentStorage.FTP) \t\t|  [![Downloads](https://img.shields.io/nuget/dt/FluentStorage.FTP.svg)](https://www.nuget.org/packages/FluentStorage.FTP) | [FTP](https://github.com/robinrodricks/FluentStorage/wiki/FTP-Storage) |\r\n| \u003cimg src=\"https://raw.githubusercontent.com/robinrodricks/FluentStorage/develop/.github/providers/sftp.png\" width=\"32\"\u003e\u003c/img\u003e| **[FluentStorage.SFTP](https://www.nuget.org/packages/FluentStorage.SFTP)**      \t|     [![Version](https://img.shields.io/nuget/vpre/FluentStorage.SFTP.svg)](https://www.nuget.org/packages/FluentStorage.SFTP) \t\t|  [![Downloads](https://img.shields.io/nuget/dt/FluentStorage.SFTP.svg)](https://www.nuget.org/packages/FluentStorage.SFTP) | [SFTP](https://github.com/robinrodricks/FluentStorage/wiki/SFTP-Storage) |\r\n| \u003cimg src=\"https://raw.githubusercontent.com/robinrodricks/FluentStorage/develop/.github/providers/azure-blob-block.png\" width=\"32\"\u003e\u003c/img\u003e| **[FluentStorage.Azure.Blobs](https://www.nuget.org/packages/FluentStorage.Azure.Blobs)**      \t|     [![Version](https://img.shields.io/nuget/vpre/FluentStorage.Azure.Blobs.svg)](https://www.nuget.org/packages/FluentStorage.Azure.Blobs) \t\t|  [![Downloads](https://img.shields.io/nuget/dt/FluentStorage.Azure.Blobs.svg)](https://www.nuget.org/packages/FluentStorage.Azure.Blobs) | [Blob](https://github.com/robinrodricks/FluentStorage/wiki/Azure-Blob-Storage) |\r\n| \u003cimg src=\"https://raw.githubusercontent.com/robinrodricks/FluentStorage/develop/.github/providers/azure-blob-file.png\" width=\"32\"\u003e\u003c/img\u003e| **[FluentStorage.Azure.Files](https://www.nuget.org/packages/FluentStorage.Azure.Files)**      \t|     [![Version](https://img.shields.io/nuget/vpre/FluentStorage.Azure.Files.svg)](https://www.nuget.org/packages/FluentStorage.Azure.Files) \t\t|  [![Downloads](https://img.shields.io/nuget/dt/FluentStorage.Azure.Files.svg)](https://www.nuget.org/packages/FluentStorage.Azure.Files) | [File](https://github.com/robinrodricks/FluentStorage/wiki/Azure-Blob-Storage) |\r\n| \u003cimg src=\"https://raw.githubusercontent.com/robinrodricks/FluentStorage/develop/.github/providers/azure-event-hub.png\" width=\"32\"\u003e\u003c/img\u003e| **[FluentStorage.Azure.EventHub](https://www.nuget.org/packages/FluentStorage.Azure.EventHub)**      \t|     [![Version](https://img.shields.io/nuget/vpre/FluentStorage.Azure.EventHub.svg)](https://www.nuget.org/packages/FluentStorage.Azure.EventHub) \t\t|  [![Downloads](https://img.shields.io/nuget/dt/FluentStorage.Azure.EventHub.svg)](https://www.nuget.org/packages/FluentStorage.Azure.EventHub) | [EventHub](https://github.com/robinrodricks/FluentStorage/wiki/Azure-Event-Hub) |\r\n| \u003cimg src=\"https://raw.githubusercontent.com/robinrodricks/FluentStorage/develop/.github/providers/azure-service-bus.png\" width=\"32\"\u003e\u003c/img\u003e| **[FluentStorage.Azure.ServiceBus](https://www.nuget.org/packages/FluentStorage.Azure.ServiceBus)**      \t|     [![Version](https://img.shields.io/nuget/vpre/FluentStorage.Azure.ServiceBus.svg)](https://www.nuget.org/packages/FluentStorage.Azure.ServiceBus) \t\t|  [![Downloads](https://img.shields.io/nuget/dt/FluentStorage.Azure.ServiceBus.svg)](https://www.nuget.org/packages/FluentStorage.Azure.ServiceBus) | [ServiceBus](https://github.com/robinrodricks/FluentStorage/wiki/Azure-Service-Bus) |\r\n| \u003cimg src=\"https://raw.githubusercontent.com/robinrodricks/FluentStorage/develop/.github/providers/azure-key-vault.png\" width=\"32\"\u003e\u003c/img\u003e| **[FluentStorage.Azure.KeyVault](https://www.nuget.org/packages/FluentStorage.Azure.KeyVault)**      \t|     [![Version](https://img.shields.io/nuget/vpre/FluentStorage.Azure.KeyVault.svg)](https://www.nuget.org/packages/FluentStorage.Azure.KeyVault) \t\t|  [![Downloads](https://img.shields.io/nuget/dt/FluentStorage.Azure.KeyVault.svg)](https://www.nuget.org/packages/FluentStorage.Azure.KeyVault) | [KeyVault](https://github.com/robinrodricks/FluentStorage/wiki/Azure-Key-Vault) |\r\n| \u003cimg src=\"https://raw.githubusercontent.com/robinrodricks/FluentStorage/develop/.github/providers/azure-service-fabric.png\" width=\"32\"\u003e\u003c/img\u003e| **[FluentStorage.Azure.ServiceFabric](https://www.nuget.org/packages/FluentStorage.Azure.ServiceFabric)**      \t|     [![Version](https://img.shields.io/nuget/vpre/FluentStorage.Azure.ServiceFabric.svg)](https://www.nuget.org/packages/FluentStorage.Azure.ServiceFabric) \t\t|  [![Downloads](https://img.shields.io/nuget/dt/FluentStorage.Azure.ServiceFabric.svg)](https://www.nuget.org/packages/FluentStorage.Azure.ServiceFabric) | [ServiceFabric](https://github.com/robinrodricks/FluentStorage/wiki/Azure-Service-Fabric) |\r\n| \u003cimg src=\"https://raw.githubusercontent.com/robinrodricks/FluentStorage/develop/.github/providers/azure-queue-storage.png\" width=\"32\"\u003e\u003c/img\u003e| **[FluentStorage.Azure.Queues](https://www.nuget.org/packages/FluentStorage.Azure.Queues)**      \t|     [![Version](https://img.shields.io/nuget/vpre/FluentStorage.Azure.Queues.svg)](https://www.nuget.org/packages/FluentStorage.Azure.Queues) \t\t|  [![Downloads](https://img.shields.io/nuget/dt/FluentStorage.Azure.Queues.svg)](https://www.nuget.org/packages/FluentStorage.Azure.Queues) | [Queue](https://github.com/robinrodricks/FluentStorage/wiki/Azure-Queue-Storage) |\r\n| \u003cimg src=\"https://raw.githubusercontent.com/robinrodricks/FluentStorage/develop/.github/providers/azure-data-lake.png\" width=\"32\"\u003e\u003c/img\u003e| **[FluentStorage.Azure.DataLake](https://www.nuget.org/packages/FluentStorage.Azure.DataLake)**      \t|     [![Version](https://img.shields.io/nuget/vpre/FluentStorage.Azure.DataLake.svg)](https://www.nuget.org/packages/FluentStorage.Azure.DataLake) \t\t|  [![Downloads](https://img.shields.io/nuget/dt/FluentStorage.Azure.DataLake.svg)](https://www.nuget.org/packages/FluentStorage.Azure.DataLake) | [DataLake](https://github.com/robinrodricks/FluentStorage/wiki/Azure-Data-Lake) |\r\n\r\n\r\n\r\n## Platform Support\r\n\r\nFluentStorage works on .NET and .NET Standard/.NET Core.\r\n\r\n| Platform      \t\t| Binaries Folder\t| \r\n|---------------\t\t|-----------\t\t|\r\n| **.NET 5.0**      \t| net50     \t\t| \r\n| **.NET 6.0**      \t| net60     \t\t| \r\n| **.NET Standard 2.0** | netstandard2.0\t| \r\n| **.NET Standard 2.1** | netstandard2.1\t| \r\n\r\nFluentStorage is also supported on these platforms: (via .NET Standard)\r\n\r\n  - **Mono** 4.6\r\n  - **Xamarin.iOS** 10.0\r\n  - **Xamarin.Android** 10.0\r\n  - **Universal Windows Platform** 10.0\r\n\r\nBinaries for all platforms are built from a single Visual Studio Project. You will need the latest [Visual Studio](https://visualstudio.microsoft.com/downloads/) to build or contribute to FluentStorage.\r\n\r\n\r\n\r\n## Documentation\r\n\r\nCheck the [Wiki](https://github.com/robinrodricks/FluentStorage/wiki).\r\n\r\n\r\n\r\n## What's New\r\n\r\nIn 2024, we added:\r\n\r\n* **DigitalOcean Spaces** provider\r\n* **MinIO** provider\r\n* **Wasabi** provider\r\n\r\nIn 2023, we added:\r\n\r\n* **SFTP** provider [SSH.NET](https://github.com/sshnet/SSH.NET) added \r\n* **FTP** provider [FluentFTP](https://github.com/robinrodricks/FluentFTP) updated to v44\r\n* **AWS** Nuget bumped to latest versions\r\n* **Wiki** created for documentation\r\n* **Platform** support updated to `netstandard2.0`,`netstandard2.1`,`net50`,`net60`\r\n\r\n\r\n\r\n## Supported Cloud Services\r\n\r\n![Slide](https://raw.githubusercontent.com/robinrodricks/FluentStorage/develop/.github/providers.svg)\r\n\r\n\r\n\r\n## Similar Libraries\r\n\r\n- [Foundatio](https://github.com/FoundatioFx/Foundatio) - Caching, Messaging, Queues and Storage library with AWS, Azure and many other providers\r\n- [SlimMessageBus](https://github.com/zarusz/SlimMessageBus) - Messaging library with providers like RabbitMQ, Kafka, Azure EventHub, MQTT, Redis\r\n- [ManagedCode.Storage](https://github.com/managedcode/Storage) - Storage library with AWS, Azure, GCP and other providers\r\n\r\n\r\n\r\n## Sponsorship\r\n\r\nFluentStorage has received major sponsorship from these generous organizations:\r\n\r\n\u003ctable\u003e\r\n\u003ctr\u003e\r\n\t\u003ctd width=\"200px\"\u003e\r\n\t\t\u003ca href=\"https://www.microsoft.com/\"\u003e\r\n\t\t\u003cimg src=\"https://github.com/robinrodricks/FluentStorage/raw/master/.github/microsoft-logo.png\" /\u003e Microsoft Corporation\r\n\t\t\u003c/a\u003e\r\n\t\u003c/td\u003e\r\n\u003c/tr\u003e\r\n\u003c/table\u003e\r\n\r\nHas FluentStorage made a difference for you or your organization? If so, consider [becoming a sponsor](https://github.com/sponsors/robinrodricks) to help keep the project thriving. Even a small monthly contribution, like $20, can make a meaningful impact.\r\n\r\n\r\n## Contributors\r\n\r\nSpecial thanks to these awesome people who helped create FluentStorage! Shoutout to [Ivan Gavryliuk](https://github.com/aloneguid) for the original project [Storage.Net](https://github.com/aloneguid/storage).\r\n\r\n\r\n\u003ca href=\"https://github.com/robinrodricks/FluentStorage/graphs/contributors\"\u003e\r\n\t\u003c!---\r\n\t\u003cimg src=\"https://contributors-img.web.app/image?repo=robinrodricks/FluentStorage\" /\u003e\r\n\t--\u003e\r\n\t\u003cimg src=\"https://github.com/robinrodricks/FluentStorage/raw/develop/.github/contributors.png\" /\u003e\r\n\u003c/a\u003e\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobinrodricks%2FFluentStorage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobinrodricks%2FFluentStorage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobinrodricks%2FFluentStorage/lists"}