-
Notifications
You must be signed in to change notification settings - Fork 1
FAQ Licensing and Support
Why not just use Alamofire or plain URLSession?
Use whichever fits. URLSession is the right choice for simple needs. Alamofire is a mature,
broadly adopted open-source library. SwiftNetworkKit exists for teams that want the specific
combination of actor-based single-flight token refresh, drop-in certificate pinning, an offline
replay queue, request deduplication, and a shipped mock transport, in one zero-dependency package
under a single owner. It is source-available proprietary, not open source.
Does it support Linux or Windows?
Linux is built and the full test suite runs on it in CI (Swift 6.1, Foundation subset). PKCE works
there via the pure-Swift SHA-256 fallback. Security / Network-backed features (certificate
pinning, KeychainTokenStorage, PathNetworkMonitor) are Apple-only and compile out; bring your
own TokenStorage / NetworkMonitor on Linux. Windows is untested.
Can I use it in a SwiftUI app that targets iOS 16?
Yes. The whole library builds and runs on iOS 16. Only the NetworkResource / Paged
@Observable helpers require iOS 17 (they are @available-gated). On iOS 16, drive state with your
own view models over the async API, as the SwiftUI demo does.
Why is certificate pinning opt-in? Pinning that is on by default causes outages when a certificate rotates unexpectedly. Making it a deliberate one-line choice, with multi-pin rotation support and a record-only discovery mode, is safer for most apps. See Security and Certificate Pinning.
Do I have to use the token refresh, cache, or offline queue?
No. Everything beyond a plain request is opt-in through NetworkConfiguration or per-endpoint
overrides. A minimal client is just NetworkClient(configuration: NetworkConfiguration(baseURL:)).
Why source-available and not MIT? The owner wants the library usable in any app, including commercial ones, while keeping it a single canonical project: no public forks, rebrands, or competing repackages. See Licensing below.
Is Swift Testing required to consume the package? No. The package's own tests use Swift Testing (Xcode 16+), but they are internal. Consuming apps can be on any toolchain that supports Swift 6.
SwiftNetworkKit is source-available proprietary software, Copyright (c) 2026 Husnain Ali. All rights reserved. It is not open source.
You may
- Read and study the source.
- Add it as a dependency and compile it into your own applications, including commercial ones, and ship those applications with the library embedded in compiled form.
- Use it for development, testing, evaluation, and CI.
- File issues, feature requests, and discussion.
You may not
- Redistribute the source code as a standalone library, package, template, or sample.
- Publish, host, mirror, or publicly fork the repository or any substantial part of it.
- Rename, rebrand, or re-release it under your own name or any name other than the Owner's, or present it as your own work.
- Build a competing networking library or SDK substantially derived from it.
- Remove copyright or license notices, or sublicense it.
Contributions (pull requests) are welcome, but by submitting one you assign all rights in it to the
Owner; the codebase stays solely the Owner's property. Full terms in LICENSE in the repo. For
redistribution, OEM, or white-label permission, contact the Owner. This is not legal advice.
| If you want to | Then |
|---|---|
| Ask how to do something with SwiftNetworkKit, discuss best practices, or float a feature idea | Open a thread in GitHub Discussions |
Ask a general Swift / URLSession / HTTP question not specific to this package |
Stack Overflow or the Swift Forums |
| Report a bug | Open a GitHub issue using the bug template, with your OS/Xcode versions and a minimal reproduction |
| Request a feature | Start a Discussion first; if there is agreement, open an issue with the feature template |
| Report a security vulnerability | Do not open a public issue. Follow SECURITY.md (private advisory or email) |
| Contribute code | Read CONTRIBUTING.md first; discuss non-trivial changes in Discussions before opening a pull request |
SwiftNetworkKit is source-available proprietary software (not open source). See FAQ Licensing and Support. Repo: https://github.com/ihusnainalii/SwiftNetworkKit · Docs: https://swiftnetworkkit.vercel.app/
Getting started
Guides
- Defining Endpoints
- Authentication and Token Refresh
- Security and Certificate Pinning
- Retry Policy
- Interceptors
- Request Management
- Caching
- Offline Request Queue
- Uploads Downloads and Progress
- Pagination and Batch
- Combine and SwiftUI
- Error Handling
- Observability
- Testing and Mocking
- Best Practices and a Complete Example
- Platform Notes, Thread Safety and Performance
Reference