# kean/nuke

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/kean-nuke).**

8,600 stars · 563 forks · Swift · MIT

## Links

- GitHub: https://github.com/kean/Nuke
- Homepage: https://kean.blog/nuke
- awesome-repositories: https://awesome-repositories.com/repository/kean-nuke.md

## Description

Nuke is an image loading system designed to fetch, cache, and render images and short video clips within a user interface. It functions as an asset caching engine and a resumable download manager to handle the retrieval of remote media files.

The framework includes a request priority manager to coordinate duplicate requests and order loading based on visual importance. It employs an image prefetching strategy to load visuals into memory before they are required and uses an LRU asset cache to reduce network traffic.

The system covers broader capabilities in traffic management and data storage, including the ability to restart interrupted large file transfers and process compressed image data. It manages the scheduling of network requests to ensure critical visual elements load first.

## Tags

### User Interface & Experience

- [Dynamic Image Loading Systems](https://awesome-repositories.com/f/user-interface-experience/dynamic-image-loading-systems.md) — Provides a complete system for fetching, caching, and rendering images and short videos in a UI.
- [Image Request Management](https://awesome-repositories.com/f/user-interface-experience/image-components/image-request-management.md) — Manages the order and deduplication of concurrent image requests to optimize visual loading.

### Part of an Awesome List

- [Image Loading and Caching](https://awesome-repositories.com/f/awesome-lists/media/image-loading-and-caching.md) — Provides a comprehensive framework for the efficient fetching, processing, and caching of images and short videos.
- [Image Processing](https://awesome-repositories.com/f/awesome-lists/media/image-processing.md) — Advanced image loading and caching framework.

### Data & Databases

- [Network Image Caching](https://awesome-repositories.com/f/data-databases/data-caching/remote-dataset-caching/network-image-caching.md) — Saves network-fetched images to local storage to minimize data usage and latency. ([source](https://github.com/kean/nuke#readme))
- [Asset Caching](https://awesome-repositories.com/f/data-databases/dataset-management-tools/in-memory-caching/asset-caching.md) — Uses a local filesystem-backed cache to store large media assets and reduce network traffic.
- [Compressed Image Extraction](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-extraction-ingestion/data-extraction/compressed-image-extraction.md) — Transforms compressed image files into viewable raw pixel formats for display. ([source](https://github.com/kean/nuke#readme))

### Mobile Development

- [Image Prefetchers](https://awesome-repositories.com/f/mobile-development/mobile-utilities/image-prefetchers.md) — Implements a strategy to proactively load image assets into memory to eliminate visible loading delays during navigation.

### Networking & Communication

- [Resumable File Transfers](https://awesome-repositories.com/f/networking-communication/resumable-file-transfers.md) — Implements mechanisms to resume interrupted file transfers from a specific byte offset.
- [Resumable Downloads](https://awesome-repositories.com/f/networking-communication/resumable-downloads.md) — Supports restarting interrupted transfers of large media files by tracking downloaded byte offsets.

### Software Engineering & Architecture

- [Priority-Based Request Queues](https://awesome-repositories.com/f/software-engineering-architecture/priority-based-request-queues.md) — Orders image downloads by importance to ensure critical visuals load before background assets.
- [Image Loading Thread Managers](https://awesome-repositories.com/f/software-engineering-architecture/task-scheduling/asynchronous-schedulers/asynchronous-thread-schedulers/custom-thread-executors/image-loading-thread-managers.md) — Provides a dedicated thread manager for asynchronous image loading and decompression tasks.

### Graphics & Multimedia

- [Asynchronous Decompression](https://awesome-repositories.com/f/graphics-multimedia/asynchronous-image-streaming/asynchronous-decompression.md) — Offloads image decompression to background threads to prevent UI freezes during rendering.

### Web Development

- [Request Deduplication](https://awesome-repositories.com/f/web-development/request-deduplication.md) — Collapses multiple concurrent network requests for the same image resource into a single shared promise.
