Fetch images from the Web.


ImageFetcher is lightweight image loading library. It is optimizes for scroll view performance by decompressing images in the background and exposing a configuration option for rounding corners of the image.

📱 Requirements

Swift 5.5 toolchain with Swift Package Manager, iOS 13

🖥 Installation

Add ImageFetcher to your Packages.swift file:

.package(url: "", from: "2.0.0"),

⚙️ Usage

Intialize ImageFetcher with a Cache:

let fetcher = ImageFetcher(try DiskCache(storageType: .temporary(nil)))

Optionally initialize with a session configuration and maximum concurrent image processing operation count:

let sessionConfiguration = URLSessionConfiguration.default
sessionConfiguration.timeoutIntervalForResource = 20
let fetcher = ImageFetcher(try DiskCache(storageType: .temporary(nil)),
                           sessionConfiguration: sessionConfiguration,
                           maxConcurrent: 5)

To fetch an image from the web:

let config = ImageConfiguration(url: URL(string: "")!)
let image = try await fetcher.load(config).value

Fetch an image with configuration options and robust handling:

let config = ImageConfiguration(url: URL(string: "")!,
                                size: CGSize(width: 100.0, height: 100.0),
                                constrain: true,
                                cornerRadius: 10.0,
                                scale: 1)
do {
    let imageSource = try await fetcher.load(config)
    switch imageSource {
    case .cached(let image):
        /// handle image coming from cache
    case .downloaded(let image):
        /// handle newly downloaded image
} catch {
    /// handle error


ImageFetcher is release under MIT licensing.


  • Swift Tools 5.5.0
View More Packages from this Author


Last updated: Thu Sep 21 2023 07:06:13 GMT-0900 (Hawaii-Aleutian Daylight Time)