A Swift image loading system for Apple platforms with caching, processing, progressive decoding, and SwiftUI/UIKit components.
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
Add the Swift Package dependency in Xcode using the repository URL
- 2
Add Kingfisher to your CocoaPods Podfile
- 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
GitHub Copilot integration for Xcode that adds code completion, chat, agent mode and code review for Swift and Objective-C projects.
A macOS and iOS document chat app that lets you upload files and ask questions, with all AI processing done on-device via Apple Foundation Models.
An open source browser for Mac, iPhone, and iPad that isolates work, personal, and private sessions into separate Spaces.
A free, open-source macOS app that shows Android emulators, Android phones, iOS simulators and iPhones side by side for mirroring, control and settings changes.
A Swift library for building Apple-platform apps with consistent state management, composable features, side-effect control, and strong testing support.