network-layer
is a library for network communication.
- Usage
- Documentation
- Requirements
- Installation
- Communication
- Contributing
- Author
- Dependencies
- License
import NetworkLayer
import NetworkLayerInterfaces
struct Request: IRequest {
var domainName: String {
"https://example.com"
}
var path: String {
"user"
}
var httpMethod: HTTPMethod {
.get
}
}
let request = Request()
let requestProcessor = NetworkLayerAssembly().assemble()
let user: User = try await requestProcessor.send(request)
Check out network-layer documentation.
- iOS 13.0+ / macOS 10.15+ / tvOS 13.0+ / watchOS 7.0+ / visionOS 1.0+
- Xcode 14.0
- Swift 5.7
The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift
compiler. It is in early development, but network-layer
does support its use on supported platforms.
Once you have your Swift package set up, adding network-layer
as a dependency is as easy as adding it to the dependencies
value of your Package.swift
.
dependencies: [
.package(url: "https://github.com/space-code/network-layer.git", .upToNextMajor(from: "1.0.0"))
]
- If you found a bug, open an issue.
- If you have a feature request, open an issue.
- If you want to contribute, submit a pull request.
Bootstrapping development environment
make bootstrap
Please feel free to help out with this project! If you see something that could be made better or want a new feature, open up an issue or send a Pull Request!
Nikita Vasilev, nv3212@gmail.com
This project uses several open-source packages:
- Atomic is a Swift property wrapper designed to make values thread-safe.
- Typhoon is a service for retry policies.
- Mocker is a library written in Swift which makes it possible to mock data requests using a custom
URLProtocol
.
network-layer is available under the MIT license. See the LICENSE file for more info.