Swiftpack.co - rosberry/Networking-iOS as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
Lightweight framework for working with network layer based on URLSession.
.package(url: "https://github.com/rosberry/Networking-iOS.git", from: "1.1.1")


Swift Version Carthage Compatible Swift Package Manager


  • iOS 11.0+
  • Xcode 11.0+



Depo is a universal dependency manager that combines Carthage, SPM and CocoaPods and provides common user interface to all of them.

To install Networking via Carthage using Depo you need to add this to your Depofile:

  - kind: github
    identifier: rosberry/Networking-iOS
To install Networking via SPM or CocoaPods


Add this to your Depofile:

  - name: Networking-iOS
    url: https://github.com/rosberry/Networking-iOS.git
      operation: upToNextMajor
      value: 1.0.0

Via CocoaPods

Add this to your Depofile:

  - name: Networking


Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. To integrate Networking into your Xcode project using Carthage, specify it in your Cartfile:

github "rosberry/Networking-iOS"


CocoaPods is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate Networking into your Xcode project using CocoaPods, specify it in your Podfile:

pod 'Networking'

Swift Package Manager

The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift compiler. Once you have your Swift package set up, adding Networking as a dependency is as easy as adding it to the dependencies value of your Package.swift.

dependencies: [
    .package(url: "https://github.com/rosberry/Networking-iOS.git", .upToNextMajor(from: "1.0.0"))


Lightweight framework for working with network layer based on URLSession.


  • making requests with Endpoint
  • error handling proxy
  • decode/encode
  • auto task canceling for similar requests
  • default http headers


Create your own Endpoint

import Foundation
import Networking

enum JokesEndpoint: Endpoint {

    case random(category: String)

    var baseURL: URL {
        URL(string: "https://official-joke-api.appspot.com/jokes")!

    var path: String {

Use RequestService to execute request with endpoint

import Foundation
import Networking

final class JokesServiceImp: RequestService, JokesService {

    private init() {
        decoder.keyDecodingStrategy = .convertFromSnakeCase

    func loadRandomJoke(category: String, completion: @escaping ResultCompletion<Joke>) {
        request(JokesEndpoint.random(category: category)) { result in


This project is owned and maintained by Rosberry. We build mobile apps for users worldwide 🌏.

Check out our open source projects, read our blog or give us a high-five on 🐦 @rosberryapps.


This project is available under the MIT license. See the LICENSE file for more info.


Stars: 1
Last commit: 4 days ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Submit a free job ad (while I'm testing this). The analytics numbers for this website are here.

Release Notes

Networking 1.1.1
31 weeks ago

Fix carthage build

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics