Repolode
onevcat

onevcat/Kingfisher

A lightweight pure-Swift library for downloading, caching and displaying images from the web in iOS, macOS and SwiftUI apps.

Stars
24,403
Forks
2,774
Open issues
164
Last commit
7 days ago

What is it?

Kingfisher is a Swift library for loading images from remote URLs into Apple-platform apps. You pass a URL to an image view extension such as imageView.kf.setImage(with:), and it downloads the image, stores it in a memory and disk cache, and shows it. Later requests for the same URL are served from the cache.

Beyond basic loading, Kingfisher includes image processors and filters, cache expiration and size limits, cancelable downloads, prefetching, placeholders, loading indicators and transition animations. Its downloader, cache and processors can be used independently. Extensions cover UIKit and AppKit views and buttons, plus SwiftUI through the KFImage view.

Key features

  • 01Asynchronous image download with memory and disk caching
  • 02Image processors and filters, including downsampling and rounded corners
  • 03Configurable cache expiration and size limits
  • 04Cancelable downloads and image prefetching
  • 05Extensions for UIKit, AppKit and SwiftUI image views

Use cases

  • Displaying remote product or avatar images in an iOS app with a list view
  • Loading large photos at the size of the target view to save memory
  • Prefetching images before the user scrolls to them

Quick start

  1. 1

    Add the Swift Package dependency in Xcode using the repository URL

  2. 2

    Add Kingfisher to your CocoaPods Podfile

  3. 3

    Load a remote image into an image view

    imageView.kf.setImage(with: url)

Things to know

  • Targets Apple platforms only (iOS, macOS, tvOS, watchOS, visionOS) and requires Swift.
  • Current development branch needs Xcode 26 and Swift 6.2+, which is newer than earlier releases.

In collections

Topics

FAQ

What is Kingfisher?
A lightweight pure-Swift library for downloading, caching and displaying images from the web in iOS, macOS and SwiftUI apps. Kingfisher is a Swift library for loading images from remote URLs into Apple-platform apps. You pass a URL to an image view extension such as imageView.kf.setImage(with:), and it downloads the image, stores it in a memory and disk cache, and shows it. Later requests for the same URL are served from the cache.
Is Kingfisher free to use? What license does it have?
Kingfisher is open source under the MIT license. Check the license terms before using it in commercial products.
Is Kingfisher still maintained?
Actively maintained. The last commit to Kingfisher was on Oct 18, 2026.
What can I use Kingfisher for?
Displaying remote product or avatar images in an iOS app with a list view Loading large photos at the size of the target view to save memory Prefetching images before the user scrolls to them
How do I install Kingfisher?
Add the Swift Package dependency in Xcode using the repository URL Add Kingfisher to your CocoaPods Podfile Load a remote image into an image view: imageView.kf.setImage(with: url)
Where can I get Kingfisher?
The source code and installation instructions are on GitHub: https://github.com/onevcat/Kingfisher

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects