Robust Swift networking for web APIs
What is Conduit?
Conduit is a session-based Swift HTTP networking and auth library.
Within each session, requests are sent through a serial pipeline before being dispatched to the network queue. Within the pipeline, requests are processed through a collection of middleware that can decorate requests, pause the session pipeline, and empty the outgoing queue. From this pattern, Conduit bundles pre-defined middleware for OAuth2 authorization grants through all major flows defined within RFC 6749 and automatically applies tokens to requests as defined in RFC 6750.
Features:
- Session-based network clients
- Configurable middleware for outbound requests
- Powerful HTTP request construction and serialization
- JSON, XML, SOAP, URL-encoded, and Multipart Form serialization and response deserialization
- Complex query parameter serialization
- Cancellable/pausable session tasks with upload/download progress closures
- SSL pinning / server trust policies
- Network Reachability
- OAuth2 client management
- Automatic token refreshes, client_credential grants, and token storage
- Secure token storage with AES-256 CBC encryption
- Full manual control over all token grants within RFC 6749
- Automatic bearer/basic token application
- Embedded authorization page / authorization code grant strategies
- Support for multiple network sessions / OAuth2 clients
- Interfaces for migrating from pre-existing networking layers
Overview
- Pricing: Free
- Resource Link: https://github.com/mindbody/Conduit
- Resource Maker: https://github.com/mindbody/Conduit
- Mobile Platform Destination: iOS Apps
- Mobile Platform Support: Native iOS
- Programming Languages: Swift
- iOS Versions Supported: iOS 8.0+, iOS 9.0+, iOS 10.0+, iOS 11.0+, iOS 12.0+
- CocoaPods: Conduit
- Carthage: mindbody/Conduit
- Swift Package Manager: https://github.com/mindbody/Conduit.git
Related resources
AndroidGpuimage
Android filters based on OpenGL (idea from GPUImage for iOS)
Dotzu
In-App iOS Debugging Tool With Enhanced Logging, Networking Info, Crash reporting And More
SQLDelight
SQLDelight - Generates typesafe Kotlin APIs from SQL