A production-tested HTTP library for iOS/macOS with built-in authentication, rate limiting, and automatic request cancellation.
SPTDataLoader is an HTTP networking library for iOS and macOS applications that centralizes authentication, rate limiting, and back-off logic. It provides a structured architecture to handle complex networking scenarios like token refresh, request retries, and automatic cancellation, reducing boilerplate code. Originally developed and tested in production by Spotify, it ensures reliability for high-traffic apps.
iOS and macOS developers building robust networking layers in Objective-C or Swift, particularly those needing fine-grained control over authentication, rate limiting, and request lifecycle management.
Developers choose SPTDataLoader for its production-tested stability, built-in support for rate limiting and authentication, and seamless integration with view-based architectures. Its unique jittered exponential backoff prevents thundering herd problems, and the Swift overlay provides modern API conveniences.
The HTTP library used by the Spotify iOS client
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Each tagged version is tested for two weeks in the Spotify app with millions of daily users, ensuring high reliability in real-world scenarios, as stated in the README.
Configurable per-service rate limiting with jittered exponential backoff prevents request storms and respects Retry-After headers, detailed in the back-off policy section.
Abstract authentication layer allows custom token acquisition and injection, supporting asynchronous token refresh seamlessly, as shown in the authoriser examples.
Ties request lifetime to view or view model deallocation, automatically cancelling requests to prevent memory leaks, which integrates well with MVVM architectures.
Provides Swift-friendly APIs with request chaining, validation, and serialization support, making it easier for modern Swift development, as demonstrated in the Swift overlay section.
The project is explicitly marked as deprecated in the README, meaning no future updates, bug fixes, or security patches, making it risky for long-term use.
While it has a Swift overlay, the core is Objective-C-based, which can lead to integration hurdles and less idiomatic Swift usage compared to native libraries.
Requires manual configuration of services, factories, and authorisers, making initial setup more complex than simpler networking alternatives like URLSession alone.
Due to deprecation, the ecosystem is stagnant with outdated documentation and reduced community contributions, hindering troubleshooting and extensions.