An opinionated HTTP library for .NET apps that provides request deduplication, prioritization, concurrency limiting, and offline caching.
Fusillade is an opinionated HTTP library for .NET applications that enhances HttpClient with advanced features like request deduplication, prioritization, and concurrency limiting. It solves common networking challenges in mobile and desktop apps by optimizing request handling, reducing redundant calls, and enabling offline support through caching.
Developers building .NET applications, especially mobile or desktop apps, who need efficient and resilient HTTP communication with features like request deduplication, priority scheduling, and offline caching.
Developers choose Fusillade for its composable HttpMessageHandler architecture that simplifies complex networking logic, reduces boilerplate code, and provides built-in optimizations like deduplication and prioritization out of the box, improving app performance and user experience.
An opinionated HTTP library for Mobile Development
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically eliminates redundant concurrent GET, HEAD, and OPTIONS requests for the same resource, reducing network usage and improving app performance, as detailed in the README's core ideas section.
Schedules HTTP requests through an OperationQueue with configurable concurrency and priority levels (UserInitiated, Background, Speculative), ensuring critical UI operations aren't blocked, which is key for mobile and desktop apps.
Supports background data fetching with a byte budget limit, allowing apps to preload likely-needed data without impacting user experience, as shown in the speculative fetching examples.
Enables offline-first patterns via IRequestCache interface and OfflineHttpMessageHandler, letting apps replay cached responses when network is unavailable, though caching requires external implementation.
Offline caching is not built-in; it requires implementing IRequestCache or integrating third-party libraries like Akavache, adding setup complexity and dependency management overhead.
Setting up custom priorities, queues, and handlers can be verbose and requires deeper understanding of HttpMessageHandler composition, which might be overkill for straightforward HTTP needs.
De-duplication works per-Handler instance, so using multiple handlers can lead to separate scopes and reduced effectiveness in complex applications, as noted in the advanced configuration section.