Yazi:用 Rust 重写终端文件管理器,速度重新定义效率

GitHub May 2026
⭐ 37339📈 +277
来源:GitHub归档:May 2026
Yazi 是一款基于 Rust 构建的终端文件管理器,借助异步 I/O 实现近乎瞬时的启动与导航。凭借超过 37,000 个 GitHub Star 和爆炸式的日增长量,它正将自己定位为 ranger 和 lf 的现代替代品。

Yazi 由开发者 sxyazi 创建,已成为终端工具生态中一颗耀眼的新星。它完全用 Rust 编写,基于 tokio 异步 I/O 架构,启动时间低于 10 毫秒,即使在包含数万文件的目录中也能实现流畅、非阻塞的文件操作。其设计哲学核心是消除传统终端文件管理器(如基于 Python 的 ranger 和基于 Go 的 lf)中常见的延迟问题。项目 GitHub 仓库 sxyazi/yazi 的 Star 数已飙升至 37,000 以上,日均增长约 277 个 Star,反映出社区的高度关注。这股热潮并非空穴来风,而是代表着对高性能、内存安全且能无缝集成现代终端工作流的实用工具的真实需求。

技术深度解析

Yazi 的架构堪称利用 Rust 优势处理 I/O 密集型应用的典范。其核心使用 tokio 运行时实现了一个完全异步的事件循环。这意味着文件系统操作——列出目录、读取元数据、生成预览——都是非阻塞的。当你进入一个目录时,Yazi 不会在扫描文件时冻结界面;相反,它会生成并发任务,在数据可用时逐步填充视图。

渲染引擎基于 ratatui(一个 Rust 终端 UI 库),提供即时模式渲染。结合异步 I/O,Yazi 在现代 SSD 上的启动时间低于 5 毫秒,而 ranger 需要 200-400 毫秒,lf 需要 50-100 毫秒。内存占用同样令人印象深刻:Yazi 通常消耗 8-12 MB 内存,而 ranger 由于 Python 的开销和插件加载,很容易超过 50 MB。

一个关键的工程决策是 Yazi 使用 inotify(Linux)和 kqueue(macOS)进行文件系统事件监控。这使得 Yazi 能够即时反映外部变化——比如构建过程或 git checkout 创建的文件——而无需轮询。插件系统通过 Lua 脚本实现,使用 mlua crate 嵌入。这提供了一种安全、沙盒化的扩展机制,同时不牺牲性能,因为 Lua 轻量且解释速度快。

对于图片预览,Yazi 支持多种协议:kitty graphics protocolsixelÜberzug。它会自动检测终端模拟器并选择最佳协议。预览生成本身是异步且缓存的,因此浏览包含图片的目录时不会出现卡顿。

基准测试数据:

| 指标 | Yazi (Rust) | ranger (Python) | lf (Go) |
|---|---|---|---|
| 启动时间(冷缓存) | 4 毫秒 | 320 毫秒 | 85 毫秒 |
| 目录列表(10,000 个文件) | 12 毫秒 | 1,200 毫秒 | 45 毫秒 |
| 内存占用(空闲) | 10 MB | 55 MB | 8 MB |
| 图片预览延迟(首次加载) | 30 毫秒 | 450 毫秒 | 不支持(无原生支持) |
| 插件执行开销 | <1 毫秒 | 15-30 毫秒 | 2-5 毫秒 |

数据要点: Yazi 在启动和列表性能上占据主导地位,冷启动速度比 ranger 快 80 倍。其内存效率与 lf 相当,但卓越的异步架构使其在处理大型目录时具有明显优势。lf 缺乏原生图片预览是一个显著短板,而 Yazi 正好填补了这一空白。

关键参与者与案例研究

Yazi 是 sxyazi 的杰作,他是一位中国开发者,此前曾为多个 Rust CLI 工具做出贡献。该项目的快速增长吸引了 GitHub 上超过 100 名贡献者。关键集成包括:

- fzf:Yazi 原生集成 fzf 进行模糊文件搜索,允许用户输入部分名称并即时过滤结果。
- ripgrep (rg):Yazi 内的文件内容搜索使用 ripgrep 作为后端,利用其极速的正则表达式引擎。
- zoxide:Yazi 可与 zoxide 交互实现智能目录跳转,学习用户的导航模式。
- tmux:Yazi 可以为文件操作生成新的 tmux 窗口或窗格,保持会话上下文。

竞争格局:

| 工具 | 语言 | Stars (GitHub) | 关键弱点 | Yazi 优势 |
|---|---|---|---|---|
| ranger | Python | 15,000 | 启动慢、内存高、依赖 Python | 启动快 80 倍,内存更低 |
| lf | Go | 7,500 | 无图片预览,插件生态较弱 | 原生图片支持,更丰富的插件 API |
| nnn | C | 19,000 | 极简风格,无标签页,无图片预览 | 标签页、图片预览、异步 I/O |
| broot | Rust | 10,000 | 界面独特,学习曲线陡峭 | Vim 风格模态界面,对 Vim 用户友好 |

数据要点: Yazi 在 Rust 领域最接近的竞争对手是 broot,但 broot 独特的树状导航存在争议。Yazi 受 Vim 启发的模态设计对大多数终端用户来说入门门槛更低。尽管 ranger 年代久远,但由于其庞大的插件生态仍然流行,但 Yazi 的 Lua 插件系统正在迅速缩小这一差距。

行业影响与市场动态

Yazi 的崛起反映了更大的行业趋势:开发者工具的 Rust 化。我们已经在 `bat`(cat 替代品)、`fd`(find 替代品)、`ripgrep`(grep 替代品)和 `delta`(diff 查看器)中看到了这一点。Yazi 通过提供一个与这些工具性能理念相匹配的文件管理器,补全了拼图。

采用速度正在加快。根据 GitHub 的趋势数据,Yazi 已连续三周位居热门仓库前十。其每日 277 个 Star 的增长量与 `neovim` 和 `tmux` 等早期项目相当。这表明 Yazi 并非小众工具,而是正在成为现代终端工作流的标准组件。

市场增长指标:

| 指标 | 2025 年第一季度 | 2025 年第二季度(预测) |
|---|---|---|
| GitHub Stars | 37,339 | 55,000+ |
| 日活跃用户(估计) | 15,000 | 30,000+ |

更多来自 GitHub

TensorFlow 书籍代码仓库:一份值得研读的机器学习历史快照vishwesh5/tensorflow-book GitHub 仓库是 2016 年出版的《TensorFlow for Machine Intelligence》一书的官方配套代码,作者为 Sam Abrahams、Danijar HaRatty:在终端内直接渲染3D图形的GPU加速终端模拟器长期以来,终端模拟器一直是等宽字体和绿底黑字怀旧风格的堡垒,但如今它正经历一场根本性的变革。由开发者 Orhun Parmaksız 创建的开源项目 Ratty(仓库地址:orhun/ratty)引入了一款 GPU 加速的终端,能够在传统文Obsidian 快照同步:开源革命如何重塑私密实时笔记同步体验Obsidian 长期以来一直是个人知识管理(PKM)社区的宠儿,但其专有同步服务——每月 5 美元或每年 48 美元——始终是用户追求无缝、私密跨设备同步的持久痛点。如今,haierkeys/obsidian-fast-note-sync查看来源专题页GitHub 已收录 1766 篇文章

时间归档

May 20261420 篇已发布文章

延伸阅读

Zellij:Rust驱动的终端革命,模块化架构如何重塑开发者工作流基于Rust编写的终端复用器Zellij在GitHub已斩获超3.1万星标,正以每日超600星的速度迅猛增长。它采用“开箱即用”理念,将类tmux功能、现代UX设计与可扩展架构深度融合,标志着开发者与终端交互方式的根本性变革。Starship 提示符:Rust 驱动的终端定制如何重塑开发者工作流Starship,一款用 Rust 编写的极简、超快终端提示符,已在 GitHub 上斩获超过 5.5 万颗星,标志着开发者终端界面正悄然发生一场革命。本分析将探讨其架构与设计哲学如何重新定义命令行效率的期望,超越美学层面,打造真正智能且感TensorFlow 书籍代码仓库:一份值得研读的机器学习历史快照vishwesh5/tensorflow-book 仓库,作为经典著作《TensorFlow for Machine Intelligence》的配套笔记本集合,已成为数字化石。尽管它停留在 TensorFlow 1.x 时代,但 AINeRatty:在终端内直接渲染3D图形的GPU加速终端模拟器Ratty 是一款基于 GPU 渲染的终端模拟器,它打破了纯文本的桎梏,将 3D 图形直接嵌入终端界面。该项目采用 Rust 语言编写,并利用现代 GPU 管线,实现了低延迟、高帧率的 3D 可视化,为实时数据仪表盘和沉浸式 CLI 工具开

常见问题

GitHub 热点“Yazi: The Rust-Powered Terminal File Manager That's Redefining Speed”主要讲了什么?

Yazi, created by developer sxyazi, has emerged as a standout open-source project in the terminal tools ecosystem. Built entirely in Rust and powered by a tokio-based asynchronous I…

这个 GitHub 项目在“Yazi vs ranger performance comparison benchmark”上为什么会引发关注?

Yazi's architecture is a masterclass in leveraging Rust's strengths for I/O-bound applications. At its core, the project uses the tokio runtime to implement a fully asynchronous event loop. This means that file system op…

从“How to install Yazi file manager on macOS with Homebrew”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 37339,近一日增长约为 277,这说明它在开源社区具有较强讨论度和扩散能力。