一个轻量的纯 Swift 图片下载与缓存库,用于 iOS、macOS 和 SwiftUI 应用中加载远程图片。
kean/Nuke
面向苹果平台的 Swift 图片加载系统,支持缓存、图片处理与 SwiftUI/UIKit 组件。
- Star
- 8,684
- Fork
- 575
- 未关闭 Issue
- 25
- 最近提交
- 前天
这是什么?
Nuke 是一个面向 iOS、macOS、watchOS、tvOS 和 visionOS 的图片加载框架。它通过统一的图片管道完成网络请求、解码、处理和缓存,应用代码只需发起请求并展示结果。
核心模块 ImagePipeline 提供内存与磁盘缓存、请求合并与优先级、预取以及可断点续传的下载。图片处理和解压在管道中完成,支持渐进式 JPEG、HEIF、WebP、GIF 和动图。加载进度可以通过异步序列观察。
NukeUI 提供现成的视图组件:SwiftUI 中使用 LazyImage,UIKit 和 AppKit 中使用 LazyImageView 与 ImageLoader。另有模块支持短视频解码与播放。项目通过 Swift Package Manager 分发,仓库中附带演示应用。
核心功能
- 01内存与磁盘双层图片缓存
- 02管道内完成图片处理与解压
- 03支持请求合并、优先级与预取
- 04支持断点续传和渐进式 JPEG
- 05可解码 HEIF、WebP、GIF 与动图
- 06提供 SwiftUI、UIKit 和 AppKit 显示组件
适用场景
- 在 iOS 或 macOS 的列表、网格中加载远程图片
- 在 SwiftUI 应用中展示 GIF 或 WebP 动图
- 在信息流滚动前预取图片以提升体验
快速上手
- 1
使用 Swift Package Manager(推荐)将 Nuke 添加到项目中
- 2
打开 Nuke.xcodeproj 并运行 NukeDemo scheme 体验示例应用
使用前须知
- 仅适用于 Apple 平台(iOS、macOS、watchOS、tvOS、visionOS)。
- 主分支为正在开发中的 Nuke 14,其系统要求尚未最终确定;最新正式版为 Nuke 13。
收录于专题
标签
常见问题
- Nuke 是什么?
- 面向苹果平台的 Swift 图片加载系统,支持缓存、图片处理与 SwiftUI/UIKit 组件。 Nuke 是一个面向 iOS、macOS、watchOS、tvOS 和 visionOS 的图片加载框架。它通过统一的图片管道完成网络请求、解码、处理和缓存,应用代码只需发起请求并展示结果。
- Nuke 可以免费使用吗?用的什么许可证?
- Nuke 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- Nuke 还在维护吗?
- 活跃维护中。Nuke 最近一次提交是在 2026年10月22日。
- Nuke 适合用来做什么?
- 在 iOS 或 macOS 的列表、网格中加载远程图片 在 SwiftUI 应用中展示 GIF 或 WebP 动图 在信息流滚动前预取图片以提升体验
- Nuke 怎么安装和运行?
- 使用 Swift Package Manager(推荐)将 Nuke 添加到项目中 打开 Nuke.xcodeproj 并运行 NukeDemo scheme 体验示例应用
- 在哪里获取 Nuke?
- 源代码和安装说明在 GitHub 上:https://github.com/kean/Nuke
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
注重隐私的本地图片与动图压缩工作台,支持 Web、Windows、macOS 和 Linux。
独立的 HTTP 图片服务,通过 URL 参数实时缩放、裁剪、处理和转换图片。
基于 ImageMagick 的自托管网页图片处理界面,支持一键 AI 抠图、批量处理和实时预览,可用 Docker 部署。
内存数据存储,可用作缓存、数据结构服务器、文档数据库、向量数据库和消息代理。
面向 Web 应用的异步状态管理与数据获取库,支持 React、Vue、Svelte 和 Solid。