A lightweight pure-Swift library for downloading, caching and displaying images from the web in iOS, macOS and SwiftUI apps.
kean/Nuke
A Swift image loading system for Apple platforms with caching, processing, progressive decoding, and SwiftUI/UIKit components.
- Stars
- 8,684
- Forks
- 575
- Open issues
- 25
- Last commit
- 2 days ago
What is it?
Nuke is an image loading framework for iOS, macOS, watchOS, tvOS, and visionOS. It loads images from remote URLs and other sources through an image pipeline that handles networking, decoding, processing, and caching, so app code only needs to request an image and display the result.
The core module provides ImagePipeline with memory and disk caches, request coalescing and priority, prefetching, and resumable downloads. Image processing and decompression happen in the pipeline, and formats include progressive JPEG, HEIF, WebP, GIF, and animated images. Progress for a load can be observed with async sequences.
NukeUI supplies ready-made views: LazyImage for SwiftUI and LazyImageView with ImageLoader for UIKit and AppKit. Separate modules cover video playback and the Swift Package Manager distribution includes a demo app in the repository.
Key features
- 01Memory and disk caching for loaded images
- 02Image processing and decompression in the pipeline
- 03Request coalescing, priority, and prefetching
- 04Resumable downloads and progressive JPEG support
- 05HEIF, WebP, GIF, and animated image decoding
- 06SwiftUI, UIKit, and AppKit display components
Use cases
- Loading remote images in an iOS or macOS list or grid view
- Showing animated GIFs or WebP images in a SwiftUI app
- Prefetching images ahead of scrolling in a feed
Quick start
- 1
Add Nuke to your project with Swift Package Manager (recommended)
- 2
Open Nuke.xcodeproj and run the NukeDemo scheme to try the demo app
Things to know
- Works only on Apple platforms (iOS, macOS, watchOS, tvOS, visionOS).
- The main branch is Nuke 14, which is in development and whose requirements are not final; the latest release is Nuke 13.
In collections
Topics
FAQ
- What is Nuke?
- A Swift image loading system for Apple platforms with caching, processing, progressive decoding, and SwiftUI/UIKit components. Nuke is an image loading framework for iOS, macOS, watchOS, tvOS, and visionOS. It loads images from remote URLs and other sources through an image pipeline that handles networking, decoding, processing, and caching, so app code only needs to request an image and display the result.
- Is Nuke free to use? What license does it have?
- Nuke is open source under the MIT license. Check the license terms before using it in commercial products.
- Is Nuke still maintained?
- Actively maintained. The last commit to Nuke was on Oct 22, 2026.
- What can I use Nuke for?
- Loading remote images in an iOS or macOS list or grid view Showing animated GIFs or WebP images in a SwiftUI app Prefetching images ahead of scrolling in a feed
- How do I install Nuke?
- Add Nuke to your project with Swift Package Manager (recommended) Open Nuke.xcodeproj and run the NukeDemo scheme to try the demo app
- Where can I get Nuke?
- The source code and installation instructions are on GitHub: https://github.com/kean/Nuke
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Privacy-first local image and GIF compression workbench for Web, Windows, macOS and Linux, with comparison, resizing, conversion and renaming.
A standalone HTTP server that resizes, crops, processes and converts images on the fly from URL-encoded options.
Self-hosted web GUI for ImageMagick with one-click AI background removal, batch processing, and a live editor, deployed via Docker.
An in-memory data store used as a cache, data structure server, document store, vector database, and message broker.
Async state management and data fetching library for web apps, with bindings for React, Vue, Svelte and Solid.