Squid alternatives and similar libraries
Based on the "Networking" category.
Alternatively, view Squid alternatives based on common mentions on social networks and blogs.
-
RealReachability
We need to observe the REAL reachability of network. That's what RealReachability do. -
Networking
DISCONTINUED. Easy HTTP Networking in Swift a NSURLSession wrapper with image caching support -
XMNetworking
A lightweight but powerful network library with simplified and expressive syntax based on AFNetworking. -
Digger
Digger is a lightweight download framework that requires only one line of code to complete the file download task -
SOAPEngine
This generic SOAP client allows you to access web services using a your iOS app, Mac OS X app and AppleTV app. -
TWRDownloadManager
A modern download manager based on NSURLSession to deal with asynchronous downloading, management and persistence of multiple files. -
ws โ๏ธ
โ ๏ธ Deprecated - (in favour of Networking) :cloud: Elegantly connect to a JSON api. (Alamofire + Promises + JSON Parsing) -
MultiPeer
๐ฑ๐ฒ A wrapper for the MultipeerConnectivity framework for automatic offline data transmission between devices -
AFNetworking+RetryPolicy
Nice category that adds the ability to set the retry interval, retry count and progressiveness.
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Squid or a related project?
README
Squid
Squid is a declarative and reactive networking library for Swift. Developed for Swift 5, it aims to make use of the latest language features. The framework's ultimate goal is to enable easy networking that makes it easy to write well-maintainable code.
In its very core, it is built on top of Apple's Combine framework and uses Apple's builtin URL loading system for networking.
Features
At the moment, the most important features of Squid can be summarized as follows:
- Sending HTTP requests and receiving server responses.
- Retrying HTTP requests with a wide range of retriers.
- Automated requesting of new pages for paginated HTTP requests.
- Sending and receiving messages over WebSockets.
- Abstraction of API endpoints and security mechanisms for a set of requests.
Quickstart
When first using Squid, you might want to try out requests against a Test API.
To perform a sample request at this API, we first define an API to manage its endpoint:
struct MyApi: HttpService {
var apiUrl: UrlConvertible {
"jsonplaceholder.typicode.com"
}
}
Afterwards, we can define the request itself:
struct Todo: Decodable {
let userId: Int
let id: Int
let title: String
let completed: Bool
}
struct TodoRequest: JsonRequest {
typealias Result = Todo
let id: Int
var routes: HttpRoute {
["todos", id]
}
}
And schedule the request as follows:
let api = MyApi()
let request = TodoRequest(id: 1)
// The following request will be scheduled to `https://jsonplaceholder.typicode.com/todos/1`
request.schedule(with: api).ignoreError().sink { todo in
// work with `todo` here
}
Installation
Squid is available via the Swift Package Manager as well as CocoaPods.
Swift Package Manager
Using the Swift Package Manager is the simplest option to use Squid. In Xcode, simply go to File > Swift Packages > Add Package Dependency...
and add this repository.
If you are developing a Swift package, adding Squid as a dependency is as easy as adding it to the dependencies of your Package.swift
like so:
dependencies: [
.package(url: "https://github.com/borchero/Squid.git")
]
CocoaPods
If you are still using CocoaPods or are required to use it due to other dependencies that are not yet available for the Swift Package Manager, you can include the following line in your Podfile to use the latest version of Squid:
pod 'Squid'
Documentation
Documentation is available here and provides both comprehensive documentation of the library's public interface as well as a series of guides teaching you how to use Squid to great effect. Expect more guides to be added shortly.
License
Squid is licensed under the MIT License.
*Note that all licence references and agreements mentioned in the Squid README section above
are relevant to that project's source code only.