On this page
Overview
Kingfisher is a Swift library for asynchronous web-image download, display, processing, and memory and disk caching. UIKit, AppKit, and SwiftUI views can reuse images by URL.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Combine image display with multi-layer caching
Extensions for image views and KFImage combine downloading, placeholders, processors, and transitions. Repeated URLs can load from cache, with prefetching and expiration controls.
Sources: [1]
Best fit
Fit Apple apps with image lists and detail views
It fits iOS, macOS, and other Apple-platform apps that display many remote images. Applications still own source terms, failure UI, and storage limits.
Sources: [1]
Before adoption
Official sources
- [1]Kingfisher README at 8.13.0(2026-10-05)
- [2]Kingfisher Package.swift at 8.13.0(2026-10-05)
- [3]Kingfisher LICENSE at 8.13.0(2026-10-05)
- [4]Kingfisher 8.13.0 release(2026-10-05)
Supplemental curator note
Before adoption, run the smallest official example on the target environment and verify application responsibilities and dependencies.
Try it in 3 steps
- 1
Record the pinned dependency
Create a macOS 12+ Swift Package application with an exact Kingfisher 8.13.0 dependency, using Xcode 26.0+ and Swift 6.2+.
mkdir KingfisherDemo && cd KingfisherDemo && mkdir -p Sources/KingfisherDemo && printf '%s\n' '// swift-tools-version: 6.2' 'import PackageDescription' 'let package = Package(' ' name: "KingfisherDemo",' ' platforms: [.macOS(.v12)],' ' dependencies: [.package(url: "https://github.com/onevcat/Kingfisher.git", exact: "8.13.0")],' ' targets: [.executableTarget(name: "KingfisherDemo", dependencies: [.product(name: "Kingfisher", package: "Kingfisher")])]' ')' > Package.swift - 2
Write a SwiftUI image view
Build a SwiftUI view that displays the pinned release logo, reloads the same URL, and prints cacheType after each success.
printf '%s\n' 'import SwiftUI' 'import Kingfisher' '@main struct KingfisherDemoApp: App {' ' var body: some Scene { WindowGroup { ContentView() } }' '}' 'struct ContentView: View {' ' @State private var reload = 0' ' let url = URL(string: "https://raw.githubusercontent.com/onevcat/Kingfisher/8.13.0/images/logo.png")!' ' var body: some View {' ' VStack {' ' KFImage(url).onSuccess { print("cache: \($0.cacheType)") }.resizable().scaledToFit().id(reload)' ' Button("Reload same URL") { reload += 1 }' ' }.frame(width: 560, height: 360)' ' }' '}' > Sources/KingfisherDemo/main.swift - 3
Integrate and inspect it in Xcode
Open Package.swift in Xcode, run on My Mac, then click Reload same URL and inspect both the image and cache type in the console.
open -a Xcode Package.swift
Growth
Growth trends · Last 30 days
24,405 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 48
- Open PRs
- 0
- Issues opened
- 4
- Issues closed
- 8
- PRs opened
- 35
- PRs merged
- 37
Issues
4 / 8
Pull requests
35 / 37
Maintenance
- Median first response
- 32 days
- Issue response rate
- 50% (2/4)
Based on up to the 100 newest issues opened by external users in the last 90 days. A first comment from an OWNER, MEMBER, or COLLABORATOR counts as a response; issues whose full comment history cannot be checked are excluded. The median and response rate update weekly.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- swift
- kingfisher
- image
- cache
- filters
- image-processor
- xcode
- ios
- macos
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Fullmoon2,267 Stars
3 shared tag(s) · Same language
an iPhone, iPad, and Mac AI chat app that runs MLX models on Apple silicon and keeps chat history on-device
Swift - FluidVoice11,905 Stars
2 shared tag(s) · Same language
Dictate across macOS locally and route only selected enhancement work to cloud or on-device AI
Swift - Gifski8,572 Stars
2 shared tag(s) · Same language
Crop, trim, preview, and convert macOS video to high-quality GIFs through a native app backed by the gifski encoder
Swift - Coil11,915 Stars
1 shared tag(s) · 2 shared category(s)
load images in Android and Compose Multiplatform with Kotlin Coroutines while integrating caching, resizing, and request lifecycle handling
Kotlin - Alamofire42,407 Stars
1 shared tag(s) · 1 shared category(s) · Same language
build Swift HTTP networking on URLSession with concise requests, retries, uploads, downloads, and TLS pinning
Swift - CodeEdit23,058 Stars
1 shared tag(s) · 1 shared category(s) · Same language
bring code editing and development tools into one native Swift app for macOS
Swift
Report incorrect information
Tell us if any listing information is incorrect or outdated.