/Nuke

Image loading system

Primary LanguageSwiftMIT LicenseMIT


Image Loading System

Nuke ILS provides an efficient way to download and display images in your app. It's easy to learn and use thanks to a clear and concise API. Its architecture enables many powerful features while offering virtually unlimited possibilities for customization.

Despite the number of features, 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 · Reactive extensions

Sponsors

Stream

Nuke is proudly sponsored by Stream, the leading provider in enterprise grade Feed & Chat APIs. Try the iOS Chat Tutorial.

Keygen

Nuke is also sponsored by Keygen, a dead-simple software licensing and distribution API built for developers, by developers.

Documentation

Nuke is easy to learn and use thanks to beautiful Nuke Docs. Make sure to also check out Nuke Demo.

Upgrading from the previous version? Use a Migration Guide. Switching from another framework? Use a Switching Guide.

Nuke documentation is also available for download as an Xcode 13 documentation archive compiled using DocC.

Extensions

The image pipeline is easy to customize and extend. Check out the following first-class extensions and packages built by the community.

Name Description
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
WebP Plugin Community. WebP support, built by Ryo Kosuge
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

Contribution

Nuke's roadmap is managed in Trello and is publicly available.

Minimum Requirements

Nuke Swift Xcode Platforms
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.

License

Nuke is available under the MIT license. See the LICENSE file for more info.


¹ Measured on MacBook Pro 14" 2021 (10-core M1 Pro)