<!-- title: 文件管理退回终端，快到飞起 -->

# 本期挖掘报告：七个把基本功做到极致的精品仓库

## 概述

这一期不走热点榜单路线，而是从四类日常痛点逆向找仓库：文件操作太慢、画图靠拖拽、排版等半天、密钥散落一地，外加两件被低估的小东西——一个带单位的计算器语言，和一个单人维护的 RSS 单文件。共性很明确：不追模型、不蹭概念，把开发者和知识工作者每天都要碰的基本功做快、做轻、做成自己的数据。七件里有三件 Rust 写的，共同气质是「装完即用，回不去了」。文中 Star 数均为约数，可能随时间变化，请以仓库页面实时数据为准。

---

## 1. typst：编译只要一瞬间的排版引擎

**仓库**：[typst/typst](https://github.com/typst/typst) | Star 约 4 万+ | 持续活跃更新

一句话定位：用现代语言设计重做一遍 LaTeX，排版这个三十年的痛点第一次有了「秒级反馈」的解法。

LaTeX 的痛只有写过论文的人懂：编译慢、报错像天书、装个宏包要折腾半天环境。typst 是 Rust 写的排版引擎，把这三件事全解决了——标记语法接近 Markdown，数学公式不用背几百个宏命令，`$x^2$` 这种写法直接上手；最关键的是增量编译，配合编辑器保存即预览，改动到看到效果基本无感延迟，这是 LaTeX 结构性做不到的。

实现上有两个亮点：一是它本质是一门内置的纯函数式脚本语言，变量、循环、自定义函数、内容块操作一应俱全，模板可以写成「程序」而不是「宏的堆叠」；二是内置包管理器，`@preview` 命名空间下的社区模板和工具一条 import 就能用，生态已经初具规模。

```bash
cargo install typst-cli
typst compile main.typ   # 输出 PDF
```

上手难度：⭐⭐

适用人群：写论文、作业、书籍、简历、幻灯片的所有人。商业层面，官方 typst.app 已经验证了协作编辑订阅制的付费意愿，围绕它做中文模板商店、论文排版服务、出版社定制模板，都是顺手的二次开发方向。

## 2. d2：架构图不拖拽，写出来

**仓库**：[terrastruct/d2](https://github.com/terrastruct/d2) | Star 约 2 万 | 持续活跃更新

一句话定位：把「画架构图」变成「写架构图」，文本进、SVG 出，图终于可以进 Git 了。

拖拽式画图工具的死穴是维护：图改一版，人和代码就对不上了。d2 是一门声明式图表语言，用文本描述节点和连线，布局交给引擎自动算，你只负责表达「谁连谁」。内置多种布局引擎（DAGRE、ELK，以及官方自研的 TALA），同一份描述可以切不同布局风格；容器嵌套表达系统分层，序列图、分类图标（K8s、云厂商图标库内置）都有对应语法。

工程细节做得相当完整：CLI 一条命令渲染 SVG/PNG，`--watch` 模式下改文本实时刷新浏览器，还有 LSP 支持，主流编辑器里写就有补全和高亮。图即文本，意味着 code review 时 diffs 一目了然，这是所有拖拽工具给不了的。

```bash
# 官方安装脚本（macOS 也可 brew install d2）
curl -fsSL https://d2lang.com/install.sh | sh -s --
echo 'x -> y: hello' > in.d2 && d2 in.d2 out.svg
```

上手难度：⭐⭐

适用人群：写设计文档、技术方案的工程师和架构师。母公司 Terrastruct 走托管编辑器订阅路线，国内可参考的方向是把它嵌进文档系统、CI 里做架构图自动校验与渲染。

## 3. yazi：全异步的终端文件管理器

**仓库**：[sxyazi/yazi](https://github.com/sxyazi/yazi) | Star 约 3 万 | 持续活跃更新

一句话定位：文件管理这件事搬回终端，用全异步架构做到了「零等待体感」。

Yazi 是 Rust 写的终端文件管理器，最直接的对手是老牌的 ranger。它最硬的卖点是架构：基于 Tokio 的全异步 IO，IO 调度、文件预览、任务队列全部并发化——浏览大目录、翻图片、看视频缩略图时，传统文件管理器会卡的那一下，它没有。预览能力是怪兽级的：图片直接在终端内渲染（主流终端协议都支持）、视频抽帧、PDF、压缩包内容列表，都是开箱即用。

交互是 Vim 键位肌肉记忆，选中、批量重命名、跨标签页搬运一气呵成；插件系统用 Lua 写，主题、图标、自定义预览器都有成熟社区配置。配合 shell 集成（退出时把目录带回到当前 shell），它可以完全接管你的文件操作。

```bash
brew install yazi          # 或
cargo install --locked yazi-fm yazi-cli
```

上手难度：⭐⭐⭐（要背几天键位，之后鼠标基本吃灰）

适用人群：重终端用户、服务器运维、追求键盘流的开发者。个人项目，走 GitHub Sponsors 模式；更大的想象空间是作为终端效率套件的底座，被各类 dotfiles 和开发环境一键安装脚本收编。

## 4. Grist：电子表格的壳，关系数据库的心

**仓库**：[gristlabs/grist-core](https://github.com/gristlabs/grist-core) | Star 数千级 | 持续活跃更新

一句话定位：Excel 的使用体验、Airtable 的产品形态、PostgreSQL 的数据主权，三样一次给齐。

团队协作里最尴尬的数据工具断层：Excel 好上手但管不住结构化数据，Airtable 好用但订阅费和数据都在别人服务器上。Grist 是两者的开源合体：界面是熟悉的表格，但每一列都可以是一段 Python 表达式（公式列），可以引用其他表做真正的关系查询；下面是实打实的 SQLite/Postgres 存储，数据完全在你手里。

核心功能拆开看：细粒度访问规则（按行、按列控制谁能看谁能改）、多视图（表格、卡片、表单、仪表盘混搭）、增量快照历史、支持从 Airtable 直接导入搬家。自托管就是一条 docker run，8484 端口起来就能用，也提供桌面版单机模式。

```bash
docker run -p 8484:8484 gristlabs/grist
```

上手难度：⭐⭐

适用人群：小团队运营、非营利组织、想把 Excel 进阶成数据库又不想学 SQL 的人。Grist Labs 采用开源核心 + 托管服务的双轨模式，政府与教育机构客户是公开的成功样本——「帮企业把 Excel 迁到自托管 Grist」本身就是一门现成的咨询生意。

## 5. Numbat：会检查物理量纲的计算器语言

**仓库**：[sharkdp/numbat](https://github.com/sharkdp/numbat) | Star 千级小仓 | 持续活跃更新

一句话定位：一个把「单位」当成一等公民的计算器，量纲错了直接编译报错，从此告别换算事故。

这是本期最小、也最容易被错过的一个仓库，作者是 fd（fat command-line find 的作者）用 Rust 写的高质量小工具系列又一员。Numbat 是一门领域专用语言：每个数字都带物理单位，`30 km/h -> m/s` 直接出结果；你写 `1 m + 1 s` 它不会给答案，而是报类型错误——因为它在编译期做量纲分析，航天史上那些单位混用的事故，在 REPL 里就拦下来了。

内置数千个物理常数（CODATA 数据）、完整 SI 单位体系，还有非物理单位：货币、像素、信息量都能定义。除了 REPL，也可以写成脚本跑批量换算；预置的示例库覆盖金融复利、图像分辨率、咖啡冲泡比例这类生活化场景，文档写得像教程一样友好。

```bash
cargo install numbat    # 或 brew install numbat
numbat                  # 进入交互式 REPL
```

上手难度：⭐

适用人群：工程师、物理/化学学生、任何被单位换算坑过的人。单独变现空间有限，但它是「垂直 DSL + 工程级质量」的教科书样本，适合作为技术品牌内容研究，也适合嵌进教学工具链做二次开发。

## 6. Infisical：把 .env 从聊天记录里救出来

**仓库**：[Infisical/infisical](https://github.com/Infisical/infisical) | Star 约 2 万 | 持续活跃更新

一句话定位：开源的密钥与环境变量管理平台，补上「HashiCorp Vault 太重、.env 文件太野」之间的空档。

几乎所有团队的密钥管理现状：生产数据库密码躺在微信/Slack 记录里，`.env.example` 和真实 `.env` 永远对不上。Infisical 把这件事产品化：环境变量按项目-环境（dev/staging/prod）统一管理，CLI 一条 `infisical run -- npm start` 就把密钥注入进程，不落盘；Terraform、Pulumi、GitHub Actions、K8s 全有官方集成，同步即生效。

进阶能力是它和纯文件方案拉开差距的地方：动态密钥（按需生成限时数据库账号、SSH 证书）、KMS、密钥轮换、审计日志、细粒度 RBAC，配合自托管模式，合规团队也能用。UI 做得相当漂亮，这一点对推广 adoption 意外地重要。

上手难度：⭐⭐⭐（自托管需要 Postgres 和一点耐心，云版免部署）

适用人群：所有还在群里传密码的团队。商业路径已被验证：YC 系公司，开源核心 + 云订阅，企业版卖 SSO 和合规——「帮中小企业从 .env 迁移到密钥平台」是现成的服务型生意。

## 7. yarr：一个文件跑起来的 RSS 阅读器

**仓库**：[nkanaev/yarr](https://github.com/nkanaev/yarr) | Star 两千上下（约数） | 单人长期维护

一句话定位：Google Reader 时代精神的最小化继承者——单个 Go 二进制 + 内嵌 SQLite，解压即用的私人 RSS 服务器。

RSS 阅读器这个品类两头畸形：托管服务（Feedly、Inoreader）年年涨价还限流，全功能自托管方案（FreshRSS、Miniflux）又要养数据库、配反代。yarr 选择了第三条路：一个开发者、一门语言、一个二进制。Go 编译时把 SQLite 和整个前端都嵌进去，下载 release 解压，`./yarr` 就跑起来了，默认 7070 端口，没有任何依赖。

功能上克制但够用：文件夹分组、未读 starred 管理、抓取频率自动调度、移动端自适应界面（手机浏览器直接当 App 用），还兼容 Fever API，意味着 Reeder 这类客户端可以直接连它。源码结构极干净，是学习「如何用 Go 写一个完整单文件 Web 应用」的优秀范本。

```bash
./yarr -db yarr.db   # 打开 http://localhost:7070
```

上手难度：⭐

适用人群：信息源自留地的重度阅读者、树莓派/小盒子玩家。变现空间在白标：内网资讯聚合、企业情报简报的底层引擎，改造成本极低。

---

## 本期横向对比

| 仓库 | 类型 | 语言 | Star（约） | 上手难度 | 适用场景 |
|------|------|------|-----------|---------|---------|
| typst | 排版引擎 | Rust | 4 万+ | ⭐⭐ | 论文/书籍/幻灯 |
| d2 | 图表即代码 | Go | 2 万 | ⭐⭐ | 架构图/技术文档 |
| yazi | 终端文件管理 | Rust | 3 万 | ⭐⭐⭐ | 服务器/终端工作流 |
| grist-core | 表格数据库 | Python/TS | 数千 | ⭐⭐ | 团队协作数据 |
| numbat | 单位计算器语言 | Rust | 千级 | ⭐ | 工程/教学换算 |
| Infisical | 密钥管理平台 | TypeScript | 2 万 | ⭐⭐⭐ | 团队安全基线 |
| yarr | RSS 自托管 | Go | 两千上下 | ⭐ | 个人信息聚合 |

## 结构速览

```mermaid
flowchart TD
    A["本期七个开源仓库"] --> B["文档与图表"]
    A --> C["终端效率"]
    A --> D["数据与安全"]
    A --> E["个人信息流"]
    B --> F["typst 排版引擎"]
    B --> G["d2 图表即代码"]
    C --> H["yazi 文件管理器"]
    D --> I["Grist 表格数据库"]
    D --> J["Infisical 密钥管理"]
    E --> K["numbat 单位计算器"]
    E --> L["yarr RSS 阅读器"]
```

## 本期之最

- **最值得立即尝试：yazi**。安装只要一分钟，键位背三天，之后你在文件管理上花的时间会永久性下降，这是七件里「体感提升」最直接的一个。
- **最有商业潜力：Infisical**。密钥管理是真痛点、真预算、真复购，开源核心 + 云订阅的路径已经跑通，围绕它的迁移与托管服务市场还远没饱和。
- **最被低估：numbat**。它解决的是一个你以为只能靠小心的问题（单位换算），解法优雅到像在上一门编译原理课。Star 不多，但见过演示的人几乎都会装一个留在终端里。

## 结语

这一期的共同气质，是把「基本功」当产品做：文件、图、文档、表格、单位、密钥、订阅，全是几十年没被认真重做过一遍的旧活。它们的启示也一致——热点会轮换，但这些每天都要用一次的东西，做快一点、轻一点、不锁门，就足够攒起一个长青的仓库。Star 数为约数，动手前请以仓库页面为准。

## 参考来源

1. [typst/typst - GitHub](https://github.com/typst/typst) — Rust 排版引擎官方仓库，语法与包管理器文档见 [typst.app](https://typst.app)
2. [terrastruct/d2 - GitHub](https://github.com/terrastruct/d2) — d2 图表语言官方仓库与 [语言文档](https://d2lang.com)
3. [sxyazi/yazi - GitHub](https://github.com/sxyazi/yazi) — 异步终端文件管理器官方仓库
4. [gristlabs/grist-core - GitHub](https://github.com/gristlabs/grist-core) — Grist 开源核心，官网 [getgrist.com](https://www.getgrist.com)
5. [Infisical/infisical - GitHub](https://github.com/Infisical/infisical) — 开源密钥管理平台，官网 [infisical.com](https://infisical.com)
6. [sharkdp/numbat - GitHub](https://github.com/sharkdp/numbat) — 单位感知计算器语言，在线试玩 [numbat.dev](https://numbat.dev)
7. [nkanaev/yarr - GitHub](https://github.com/nkanaev/yarr) — 单文件自托管 RSS 阅读器官方仓库

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
