STXImageCache 1.0.2

STXImageCache 1.0.2

LangLanguage SwiftSwift
License MIT
ReleasedLast Release Feb 2017
SwiftSwift Version 3.0
SPMSupports SPM

Maintained by Norbert Sroczyński.

  • By
  • Norbert Sroczyński

codebeat badge

STXImageCache is a lightweight, pure-Swift, easy to use library for downloading and caching images. It provides convenient UI extensions. It’s inspired by popular libraries like Kingfisher and SDWebImage.


  • [x] UI extensions
  • [x] An asynchronous image downloader
  • [x] Cancelable downloading tasks
  • [x] Memory caching
  • [x] Disk caching
  • [x] A guarantee that the same URL won’t be downloaded several times
  • [x] High performance
  • [x] Use GCD and ARC


  • iOS 9.0 or later
  • tvOS 9.0 or later
  • watchOS 2.0 or later
  • macOS 10.10 or later
  • Xcode 8.0 or later

Getting Started

Simplest usage

let url = URL(string: "image_url")!
imageView.stx.image(atURL: url)

Advanced usage

let url = URL(string: "image_url")!
let placeholder = UIImage(named: "placeholder")
let operation = imageView.stx.image(atURL: url, placeholder: placeholder, progress: { progress in
        // update progressView
    }, completion: { image, _ in
        // do image processing
        return image

Using with UITableViewCell

import UIKit
import STXImageCache

final class Cell: UITableViewCell {
    var operation: STXImageOperation?
    @IBOutlet weak var progress: UIProgressView!

    override func prepareForReuse() {

    func configure(withURL url: URL, placeholder: UIImage) {
        imageView?.image = nil
        progress.progress = 0
        self.progress.isHidden = false
        operation = imageView?.stx.image(atURL: url, placeholder: placeholder, progress: { progress in
            DispatchQueue.main.async {
                self.progress.setProgress(progress, animated: true)
        }, completion: { image, _ in
            DispatchQueue.main.async {
                self.progress.isHidden = true
            return image



  • 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.


All source code is licensed under the MIT License.