# rs/sdwebimage

**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/rs-sdwebimage).**

25,645 stars · 5,966 forks · Objective-C · MIT

## Links

- GitHub: https://github.com/rs/SDWebImage
- Homepage: https://sdwebimage.github.io
- awesome-repositories: https://awesome-repositories.com/repository/rs-sdwebimage.md

## Description

SDWebImage is an asynchronous image loading library for iOS that provides a framework for fetching, decoding, and caching images. It consists of a core loading library, a decoding engine, a processing pipeline, and a caching system designed to reduce network traffic and improve load times.

The project features a two-tier caching architecture that stores assets in both volatile memory and persistent disk storage. It distinguishes itself through a modular loader pattern and a plugin-based decoding system, which allow for the integration of custom storage engines and the support of non-standard raster, vector, and animated image formats.

The library manages image processing through background thread decompression and thumbnail decoding to maintain interface performance. It also includes capabilities for progressive image rendering, composable post-download transformations, and direct binding of asynchronous loading to user interface elements.

## Tags

### Data & Databases

- [Hybrid Memory-Disk Caches](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/caching-performance/caching-strategies/hybrid-memory-disk-caches.md) — Implements a two-tier caching system combining volatile memory and persistent disk storage.
- [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 improve load times. ([source](https://github.com/rs/sdwebimage#readme))
- [Image Caches](https://awesome-repositories.com/f/data-databases/in-memory-caches/image-caches.md) — Provides an in-memory cache for images with automatic eviction and size limits. ([source](https://github.com/rs/sdwebimage#readme))
- [Composable Image Transforms](https://awesome-repositories.com/f/data-databases/file-storage-and-metadata-management/image-transformations/composable-image-transforms.md) — Allows for the creation of composable chains of visual transformations applied to images after they are downloaded. ([source](https://github.com/rs/sdwebimage#readme))

### Mobile Development

- [Image Loading Libraries](https://awesome-repositories.com/f/mobile-development/ios-application-architectures/image-loading-libraries.md) — Provides a comprehensive asynchronous image downloading and caching framework specifically for iOS applications.
- [Image Caching Frameworks](https://awesome-repositories.com/f/mobile-development/image-caching-frameworks.md) — Provides a complete framework for asynchronous image downloading, decoding, and two-tier caching for iOS.

### Graphics & Multimedia

- [Asynchronous Decompression](https://awesome-repositories.com/f/graphics-multimedia/asynchronous-image-streaming/asynchronous-decompression.md) — Offloads the heavy process of image decompression to background threads to prevent frame drops. ([source](https://github.com/rs/sdwebimage#readme))
- [Image Decoding](https://awesome-repositories.com/f/graphics-multimedia/image-decoding.md) — Provides a modular engine for converting various raster, vector, and animated image formats into renderable pixel representations.
- [Multi-Format Decoders](https://awesome-repositories.com/f/graphics-multimedia/image-decoding/multi-format-decoders.md) — Supports the parsing of multiple raster and vector image types through a pluggable codec system. ([source](https://github.com/rs/sdwebimage#readme))
- [Plugin-Based Decoders](https://awesome-repositories.com/f/graphics-multimedia/image-decoding/plugin-based-decoders.md) — Features a plugin-based architecture allowing custom coders to be registered for various image formats.
- [Image Source Loaders](https://awesome-repositories.com/f/graphics-multimedia/image-source-loaders.md) — Employs a modular loader system to retrieve image data from diverse sources like URLs and local libraries.
- [Image Processing Pipelines](https://awesome-repositories.com/f/graphics-multimedia/media-processing-analysis/media-manipulation/media-processing-workflows/image-processing-pipelines.md) — Implements a pipeline for applying a sequence of visual transformations and decompression steps to images after retrieval.
- [Composable Transformations](https://awesome-repositories.com/f/graphics-multimedia/image-editing-processing/image-processing/composable-transformations.md) — Provides a pipeline for chaining multiple visual filters and transformations to images after retrieval.
- [iOS Animated Image Decoders](https://awesome-repositories.com/f/graphics-multimedia/image-editing-processing/image-processing/image-sequence-processors/animation-frame-sequencers/animated-frame-managers/ios-animated-image-decoders.md) — Includes specialized decoders for rendering animated formats like GIF, WebP, and APNG on iOS. ([source](https://github.com/rs/sdwebimage#readme))
- [Incremental Visual Renderers](https://awesome-repositories.com/f/graphics-multimedia/incremental-visual-renderers.md) — Renders image data progressively as it arrives from the network to provide immediate visual feedback.
- [Remote Asset Processors](https://awesome-repositories.com/f/graphics-multimedia/media-processing-analysis/media-downloaders/url-image-downloaders/remote-asset-processors.md) — Processes and transforms remote image assets immediately after download using a visual filter pipeline.
- [Subsampling Decoders](https://awesome-repositories.com/f/graphics-multimedia/media-processing-analysis/media-manipulation/media-processing-workflows/image-processing-pipelines/image-format-decoders/native-image-decoders/subsampling-decoders.md) — Optimizes memory and CPU usage by decoding scaled-down thumbnail versions of large images. ([source](https://github.com/rs/sdwebimage#readme))
- [Pluggable Image Formats](https://awesome-repositories.com/f/graphics-multimedia/pluggable-image-formats.md) — Offers a plugin system for registering custom image coders to extend support for non-standard file formats. ([source](https://github.com/rs/sdwebimage#readme))

### User Interface & Experience

- [Asynchronous Remote Image Fetching](https://awesome-repositories.com/f/user-interface-experience/asynchronous-remote-image-fetching.md) — Fetches images from remote network URLs on background threads to maintain UI responsiveness. ([source](https://github.com/rs/sdwebimage#readme))
- [Image View Bindings](https://awesome-repositories.com/f/user-interface-experience/data-to-ui-bindings/image-view-bindings.md) — Enables direct binding of asynchronous image loading to UI elements like image views for simplified display. ([source](https://github.com/rs/sdwebimage#readme))

### Web Development

- [iOS Off-Main-Thread Rendering](https://awesome-repositories.com/f/web-development/high-performance/off-main-thread-layouts/ios-off-main-thread-rendering.md) — Implements background thread decoding of images to prevent user interface stutters on iOS.

### Software Engineering & Architecture

- [Image Format Plugins](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/plugin-based-architectures/image-format-plugins.md) — Integrates a pluggable architecture to extend support for non-standard raster and vector image formats.

### Part of an Awesome List

- [Image Processing](https://awesome-repositories.com/f/awesome-lists/devtools/image-processing.md) — Highly popular and efficient library for asynchronous image caching.
- [Image Processing](https://awesome-repositories.com/f/awesome-lists/media/image-processing.md) — Asynchronous image downloader with caching support.
