Repolode
kean

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

    Add Nuke to your project with Swift Package Manager (recommended)

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