{"id":15037516,"url":"https://github.com/kean/nuke","last_synced_at":"2025-05-14T08:03:52.167Z","repository":{"id":28496426,"uuid":"32012751","full_name":"kean/Nuke","owner":"kean","description":"Image loading system","archived":false,"fork":false,"pushed_at":"2025-04-28T03:14:29.000Z","size":12787,"stargazers_count":8340,"open_issues_count":38,"forks_count":540,"subscribers_count":97,"default_branch":"main","last_synced_at":"2025-05-14T08:02:15.004Z","etag":null,"topics":["cache","gif","image","progressive","swift","webp"],"latest_commit_sha":null,"homepage":"https://kean.blog/nuke","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kean.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"kean","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2015-03-11T10:53:26.000Z","updated_at":"2025-05-14T05:00:48.000Z","dependencies_parsed_at":"2022-07-14T08:17:49.548Z","dependency_job_id":"ac65324f-016f-4d7f-a74a-215d332ba0ce","html_url":"https://github.com/kean/Nuke","commit_stats":{"total_commits":2955,"total_committers":91,"mean_commits":"32.472527472527474","dds":0.05854483925549914,"last_synced_commit":"1d748d4eac8db894ea3c4abfc504a87c902834bf"},"previous_names":[],"tags_count":184,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kean%2FNuke","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kean%2FNuke/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kean%2FNuke/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kean%2FNuke/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kean","download_url":"https://codeload.github.com/kean/Nuke/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254101588,"owners_count":22014907,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cache","gif","image","progressive","swift","webp"],"created_at":"2024-09-24T20:34:53.394Z","updated_at":"2025-05-14T08:03:52.108Z","avatar_url":"https://github.com/kean.png","language":"Swift","funding_links":["https://github.com/sponsors/kean"],"categories":[],"sub_categories":[],"readme":"\u003cbr/\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/1567433/114792417-57c1d080-9d56-11eb-8035-dc07cfd7557f.png\" height=\"170px\"\u003e\n\n# Image Loading System\n\n\u003cp align=\"left\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/platforms-iOS%2C%20macOS%2C%20watchOS%2C%20tvOS%2C%20visionOS-lightgrey.svg\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/Licence-MIT-green\"\u003e\n\u003c/p\u003e\n\n\u003e *Serving Images Since 2015*\n\nLoad images from different sources and display them in your app using simple and flexible APIs. Take advantage of the powerful image processing capabilities and a robust caching system.\n\nThe framework is lean and compiles in under 2 seconds[¹](#footnote-1). It has an automated test suite 2x the codebase size, ensuring excellent reliability. Nuke is optimized for [performance](https://kean-docs.github.io/nuke/documentation/nuke/performance-guide), and its advanced architecture enables virtually unlimited possibilities for customization.\n\n\u003e **Memory and Disk Cache** · **Image Processing \u0026 Decompression** · **Request Coalescing \u0026 Priority** · **Prefetching** · **Resumable Downloads** · **Progressive JPEG** · **HEIF, WebP, GIF** · **SwiftUI** · **Async/Await**\n\n## Sponsors\n\n[**Lapse**](https://www.lapse.com): friends *not followers*.\n\n\u003ca href=\"https://www.lapse.com\"\u003e\u003cimg src=\"https://github.com/user-attachments/assets/28bb4f4b-affc-4580-879d-5aeef633b80c\" height=\"140px\" alt=\"Lapse Logo\"\u003e\u003c/a\u003e\n\nNuke is also supported by:\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd valign=\"center\" align=\"center\"\u003e\n        \u003ca href=\"https://proxyman.io\"\u003e\n          \u003cimg src=\"https://kean.blog/images/logos/proxyman.png\" height=\"50px\" alt=\"Proxyman Logo\"\u003e\n          \u003cp\u003eProxyman\u003c/p\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd valign=\"center\" align=\"center\"\u003e\n      \u003ca href=\"https://backspace.travel\"\u003e\n        \u003cimg src=\"https://avatars.githubusercontent.com/u/175125884?s=200\u0026v=4\" height=\"50px\", alt=\"Backspace Travel\"/\u003e\n        \u003cp\u003eBackspace Travel\u003c/p\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Installation\n\nNuke supports [Swift Package Manager](https://www.swift.org/package-manager/), which is the recommended option. If that doesn't work for you, you can use binary frameworks attached to the [releases](https://github.com/kean/Nuke/releases).\n\nThe package ships with four modules that you can install depending on your needs:\n\n|Module|Description|\n|--|--|\n|[**Nuke**](https://kean-docs.github.io/nuke/documentation/nuke)|The lean core framework with `ImagePipeline`, `ImageRequest`, and more|\n|[**NukeUI**](https://kean-docs.github.io/nukeui/documentation/nukeui/)|The UI components: `LazyImage` (SwiftUI) and `ImageView` (UIKit, AppKit)|\n|[**NukeExtensions**](https://kean-docs.github.io/nukeextensions/documentation/nukeextensions/)|The extensions for `UIImageView` (UIKit, AppKit)|\n|[**NukeVideo**](https://kean-docs.github.io/nukevideo/documentation/nukevideo/)|The components for decoding and playing short videos|\n\n## Documentation\n\nNuke is easy to learn and use, thanks to its extensive documentation and a modern API. \n\nYou can load images using `ImagePipeline` from the lean core [**Nuke**](https://kean-docs.github.io/nuke/documentation/nuke) module:\n\n```swift\nfunc loadImage() async throws {\n    let imageTask = ImagePipeline.shared.imageTask(with: url)\n    for await progress in imageTask.progress {\n        // Update progress\n    }\n    imageView.image = try await imageTask.image\n}\n```\n\nOr you can use the built-in UI components from the [**NukeUI**](https://kean-docs.github.io/nukeui/documentation/nukeui/) module:\n\n```swift\nstruct ContentView: View {\n    var body: some View {\n        LazyImage(url: URL(string: \"https://example.com/image.jpeg\"))\n    }\n}\n```\n\nThe [**Getting Started**](https://kean-docs.github.io/nuke/documentation/nuke/getting-started/) guide is the best place to start learning about these and many other APIs provided by the framework. Check out [**Nuke Demo**](https://github.com/kean/NukeDemo) for more usage examples.\n\n\u003ca href=\"https://kean-docs.github.io/nuke/documentation/nuke/getting-started\"\u003e\n\u003cimg width=\"690\" alt=\"Nuke Docs\" src=\"https://user-images.githubusercontent.com/1567433/175793167-b7e0c557-b887-444f-b18a-57d6f5ecf01a.png\"\u003e\n\u003c/a\u003e\n\n## Extensions\n\nThe image pipeline is easy to customize and extend. Check out the following first-class extensions and packages built by the community.\n\n|Name|Description|\n|--|--|\n|[**Alamofire Plugin**](https://github.com/kean/Nuke-Alamofire-Plugin)|Replace networking layer with [Alamofire](https://github.com/Alamofire/Alamofire)|\n|[**NukeWebP**](https://github.com/makleso6/NukeWebP)| **Community**. [WebP](https://developers.google.com/speed/webp/) support, built by [Maxim Kolesnik](https://github.com/makleso6)|\n|[**WebP Plugin**](https://github.com/ryokosuge/Nuke-WebP-Plugin)| **Community**. [WebP](https://developers.google.com/speed/webp/) support, built by [Ryo Kosuge](https://github.com/ryokosuge)|\n|[**AVIF Plugin**](https://github.com/delneg/Nuke-AVIF-Plugin)| **Community**. [AVIF](https://caniuse.com/avif) support, built by [Denis](https://github.com/delneg)|\n|[**RxNuke**](https://github.com/kean/RxNuke)|[RxSwift](https://github.com/ReactiveX/RxSwift) extensions for Nuke with examples|\n\n\u003e Looking for a way to log your network requests, including image requests? Check out [**Pulse**](https://github.com/kean/Pulse).\n\n## Minimum Requirements\n\n\u003e Upgrading from the previous version? Use a [**Migration Guide**](https://github.com/kean/Nuke/tree/master/Documentation/Migrations).\n\n| Nuke       | Date         | Swift       | Xcode      | Platforms                                     |\n|------------|--------------|-------------|------------|-----------------------------------------------|\n| Nuke 12.0  | Mar 4, 2023  | Swift 5.7   | Xcode 15.0 | iOS 13.0, watchOS 6.0, macOS 10.15, tvOS 13.0 |\n| Nuke 11.0  | Jul 20, 2022 | Swift 5.6   | Xcode 13.3 | iOS 13.0, watchOS 6.0, macOS 10.15, tvOS 13.0 |\n| Nuke 10.0  | Jun 1, 2021  | Swift 5.3   | Xcode 12.0 | iOS 11.0, watchOS 4.0, macOS 10.13, tvOS 11.0 |\n\n\u003e Starting with version 12.3, Nuke also ships with visionOS support (in beta)\n\n## License\n\nNuke is available under the MIT license. See the LICENSE file for more info.\n\n----\n\n\u003e \u003ca name=\"footnote-1\"\u003e¹\u003c/a\u003e Measured on MacBook Pro 14\" 2021 (10-core M1 Pro)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkean%2Fnuke","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkean%2Fnuke","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkean%2Fnuke/lists"}