{"id":15073538,"url":"https://github.com/foundatiofx/foundatio","last_synced_at":"2026-02-14T05:02:18.945Z","repository":{"id":26907416,"uuid":"30369187","full_name":"FoundatioFx/Foundatio","owner":"FoundatioFx","description":"Pluggable foundation blocks for building distributed apps.","archived":false,"fork":false,"pushed_at":"2025-05-09T18:17:43.000Z","size":5701,"stargazers_count":2025,"open_issues_count":29,"forks_count":247,"subscribers_count":99,"default_branch":"main","last_synced_at":"2025-05-10T10:42:50.474Z","etag":null,"topics":["abstractions","aws","azure","c-sharp","distributed","distributed-locks","distributed-systems","foundatio","job-scheduler","jobs","lock","logging","message-bus","messaging","metrics","queue","redis","s3","statsd","storage"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FoundatioFx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","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":"exceptionless"}},"created_at":"2015-02-05T17:47:22.000Z","updated_at":"2025-05-10T09:05:53.000Z","dependencies_parsed_at":"2023-11-13T01:38:31.552Z","dependency_job_id":"e2f38a06-53de-4276-b1c1-0a635624580c","html_url":"https://github.com/FoundatioFx/Foundatio","commit_stats":{"total_commits":1949,"total_committers":38,"mean_commits":51.28947368421053,"dds":0.5135967162647512,"last_synced_commit":"ad61485bf82e67d3298375595842c0d43490603f"},"previous_names":["exceptionless/foundatio"],"tags_count":60,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FoundatioFx%2FFoundatio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FoundatioFx%2FFoundatio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FoundatioFx%2FFoundatio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FoundatioFx%2FFoundatio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FoundatioFx","download_url":"https://codeload.github.com/FoundatioFx/Foundatio/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253404956,"owners_count":21903109,"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":["abstractions","aws","azure","c-sharp","distributed","distributed-locks","distributed-systems","foundatio","job-scheduler","jobs","lock","logging","message-bus","messaging","metrics","queue","redis","s3","statsd","storage"],"created_at":"2024-09-25T03:01:31.248Z","updated_at":"2026-02-14T05:02:18.940Z","avatar_url":"https://github.com/FoundatioFx.png","language":"C#","readme":"![Foundatio](https://raw.githubusercontent.com/FoundatioFx/Foundatio/master/media/foundatio-dark-bg.svg#gh-dark-mode-only \"Foundatio\")![Foundatio](https://raw.githubusercontent.com/FoundatioFx/Foundatio/master/media/foundatio.svg#gh-light-mode-only \"Foundatio\")\n\n[![Build status](https://github.com/FoundatioFx/Foundatio/workflows/Build/badge.svg)](https://github.com/FoundatioFx/Foundatio/actions)\n[![NuGet Version](http://img.shields.io/nuget/v/Foundatio.svg?style=flat)](https://www.nuget.org/packages/Foundatio/)\n[![feedz.io](https://img.shields.io/badge/endpoint.svg?url=https%3A%2F%2Ff.feedz.io%2Ffoundatio%2Ffoundatio%2Fshield%2FFoundatio%2Flatest)](https://f.feedz.io/foundatio/foundatio/packages/Foundatio/latest/download)\n[![Discord](https://img.shields.io/discord/715744504891703319)](https://discord.gg/6HxgFCx)\n\nPluggable foundation blocks for building loosely coupled distributed apps.\n\n## ✨ Why Choose Foundatio?\n\n- 🔌 **Pluggable implementations** - Swap Redis, Azure, AWS, or in-memory with no code changes\n- 🧪 **Developer friendly** - In-memory implementations for fast local development and testing\n- 💉 **DI native** - Built for Microsoft.Extensions.DependencyInjection\n- 🎯 **Interface-first** - Code against abstractions, not implementations\n- ⚡ **Production ready** - Battle-tested in high-scale applications\n- 🔄 **Consistent APIs** - Same patterns across caching, queues, storage, and more\n\n## 🧱 Core Building Blocks\n\n| Feature | Description |\n|---------|-------------|\n| [**Caching**](https://foundatio.dev/guide/caching) | In-memory, Redis, and hybrid caching with automatic invalidation |\n| [**Queues**](https://foundatio.dev/guide/queues) | Reliable message queuing with Redis, Azure, AWS SQS |\n| [**Locks**](https://foundatio.dev/guide/locks) | Distributed locking and throttling |\n| [**Messaging**](https://foundatio.dev/guide/messaging) | Pub/sub with Redis, RabbitMQ, Kafka, Azure Service Bus |\n| [**Jobs**](https://foundatio.dev/guide/jobs) | Background job processing with queue integration |\n| [**File Storage**](https://foundatio.dev/guide/storage) | Unified file API for disk, S3, Azure Blob, and more |\n| [**Resilience**](https://foundatio.dev/guide/resilience) | Retry policies, circuit breakers, and timeouts |\n\n## 🚀 Quick Start\n\n```bash\ndotnet add package Foundatio\n```\n\n```csharp\n// Caching\nICacheClient cache = new InMemoryCacheClient();\nawait cache.SetAsync(\"user:123\", user, TimeSpan.FromMinutes(5));\nvar cached = await cache.GetAsync\u003cUser\u003e(\"user:123\");\n\n// Queuing\nIQueue\u003cWorkItem\u003e queue = new InMemoryQueue\u003cWorkItem\u003e();\nawait queue.EnqueueAsync(new WorkItem { Data = \"Hello\" });\nvar entry = await queue.DequeueAsync();\n\n// File Storage\nIFileStorage storage = new InMemoryFileStorage();\nawait storage.SaveFileAsync(\"docs/readme.txt\", \"Hello World\");\n\n// Distributed Locks\nILockProvider locker = new CacheLockProvider(cache, messageBus);\nawait using var handle = await locker.AcquireAsync(\"resource-key\");\n```\n\n## 📦 Provider Implementations\n\n| Provider | Caching | Queues | Messaging | Storage | Locks |\n|----------|---------|--------|-----------|---------|-------|\n| [In-Memory](https://foundatio.dev/guide/implementations/in-memory) | ✅ | ✅ | ✅ | ✅ | ✅ |\n| [Redis](https://github.com/FoundatioFx/Foundatio.Redis) | ✅ | ✅ | ✅ | ✅ | ✅ |\n| [Azure Storage](https://github.com/FoundatioFx/Foundatio.AzureStorage) | | ✅ | | ✅ | |\n| [Azure Service Bus](https://github.com/FoundatioFx/Foundatio.AzureServiceBus) | | ✅ | ✅ | | |\n| [AWS (S3/SQS/SNS)](https://github.com/FoundatioFx/Foundatio.AWS) | | ✅ | ✅ | ✅ | |\n| [RabbitMQ](https://github.com/FoundatioFx/Foundatio.RabbitMQ) | | | ✅ | | |\n| [Kafka](https://github.com/FoundatioFx/Foundatio.Kafka) | | | ✅ | | |\n| [Minio](https://github.com/FoundatioFx/Foundatio.Minio) | | | | ✅ | |\n| [Aliyun](https://github.com/FoundatioFx/Foundatio.Aliyun) | | | | ✅ | |\n| [SFTP](https://github.com/FoundatioFx/Foundatio.Storage.SshNet) | | | | ✅ | |\n\n## 📚 Learn More\n\n**👉 [Complete Documentation](https://foundatio.dev)**\n\n### Core Features\n\n- [Getting Started](https://foundatio.dev/guide/getting-started) - Installation and setup\n- [Caching](https://foundatio.dev/guide/caching) - In-memory, Redis, and hybrid caching with invalidation\n- [Queues](https://foundatio.dev/guide/queues) - FIFO message delivery with lock renewal and retry policies\n- [Locks](https://foundatio.dev/guide/locks) - Distributed locking with null handling patterns\n- [Messaging](https://foundatio.dev/guide/messaging) - Pub/sub with size limits and notification patterns\n- [File Storage](https://foundatio.dev/guide/storage) - Unified file API across providers\n- [Jobs](https://foundatio.dev/guide/jobs) - Background job processing and hosted service integration\n\n### Advanced Topics\n\n- [Resilience](https://foundatio.dev/guide/resilience) - Retry policies, circuit breakers, and timeouts\n- [Serialization](https://foundatio.dev/guide/serialization) - Serializer configuration and performance\n- [Dependency Injection](https://foundatio.dev/guide/dependency-injection) - DI setup and patterns\n- [Configuration](https://foundatio.dev/guide/configuration) - Options and settings\n\n## 📦 CI Packages (Feedz)\n\nWant the latest CI build before it hits NuGet? Add the Feedz source and install the pre-release version:\n\n```bash\ndotnet nuget add source https://f.feedz.io/foundatio/foundatio/nuget -n foundatio-feedz\ndotnet add package Foundatio --prerelease\n```\n\nOr add to your `NuGet.config`:\n\n```xml\n\u003cconfiguration\u003e\n  \u003cpackageSources\u003e\n    \u003cadd key=\"foundatio-feedz\" value=\"https://f.feedz.io/foundatio/foundatio/nuget\" /\u003e\n  \u003c/packageSources\u003e\n  \u003cpackageSourceMapping\u003e\n    \u003cpackageSource key=\"foundatio-feedz\"\u003e\n      \u003cpackage pattern=\"Foundatio.*\" /\u003e\n    \u003c/packageSource\u003e\n  \u003c/packageSourceMapping\u003e\n\u003c/configuration\u003e\n```\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. See our [documentation](https://foundatio.dev) for development guidelines.\n\n**Development Setup:**\n\n1. Clone the repository\n2. Open `Foundatio.slnx` in Visual Studio or VS Code\n3. Run `dotnet build` to build\n4. Run `dotnet test` to run tests\n\n## 🔗 Related Projects\n\n- [**Foundatio.Mediator**](https://github.com/FoundatioFx/Foundatio.Mediator) - Blazingly fast, convention-based C# mediator powered by source generators\n\n## 📄 License\n\nApache 2.0 License\n\n## Thanks to all the people who have contributed\n\n[![contributors](https://contributors-img.web.app/image?repo=foundatiofx/foundatio)](https://github.com/foundatiofx/foundatio/graphs/contributors)\n","funding_links":["https://github.com/sponsors/exceptionless"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoundatiofx%2Ffoundatio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffoundatiofx%2Ffoundatio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoundatiofx%2Ffoundatio/lists"}