Nuke provides an efficient way to download and display images in your app. It's easy to learn and use. Its architecture enables many powerful features while offering virtually unlimited possibilities for customization.
The framework is lean and compiles in under 2 seconds¹. Nuke has an automated test suite 2x the size of the codebase itself, ensuring excellent reliability. Every feature is carefully designed and optimized for performance.
Fast LRU memory and disk cache · SwiftUI · Smart background decompression · Image processing · Resumable downloads · Intelligent deduplication · Request prioritization · Prefetching · Rate limiting · Progressive JPEG, HEIF, WebP, SVG, GIF · Alamofire · Combine · Async/Await
Nuke is proudly sponsored by Stream, the leading provider in enterprise grade Feed & Chat APIs.
Support Nuke on GitHub Sponsors.
The image pipeline is easy to customize and extend. Check out the following first-class extensions and packages built by the community.
|NukeUI||Lazy image loading for SwiftUI|
|NukeBuilder||A fun and convenient way to use Nuke|
|Alamofire Plugin||Replace networking layer with Alamofire|
|RxNuke||RxSwift extensions for Nuke with examples|
|NukeWebP||Community. WebP support, built by Maxim Kolesnik|
|WebP Plugin||Community. WebP support, built by Ryo Kosuge|
|AVIF Plugin||Community. AVIF support, built by Denis|
|Gifu Plugin||Use Gifu to load and display animated GIFs|
|FLAnimatedImage Plugin||Use FLAnimatedImage to load and display animated GIFs|
|Xamarin NuGet||Community. Makes it possible to use Nuke from Xamarin|
Nuke's roadmap is managed in Trello and is publicly available.
|Nuke 10.0||Swift 5.3||Xcode 12.0||iOS 11.0, watchOS 4.0, macOS 10.13, tvOS 11.0|
|Nuke 9.0||Swift 5.1||Xcode 11.0||iOS 11.0, watchOS 4.0, macOS 10.13, tvOS 11.0|
See Installation Guide for information about the older versions.
Nuke is available under the MIT license. See the LICENSE file for more info.
¹ Measured on MacBook Pro 14" 2021 (10-core M1 Pro)
|Last commit: 17 minutes ago|
ImageCachingextension that works with
ImageProcessing.custom(id:closure:)for creating custom processors
ImageResponsetypealias to NukeUI
.pipelineInvalidatederror for new requests