huacnlee/cargo

为什么做这个项目

我认为 Rust 是当前 AI 时代非常有价值的编程语言:它有很好的性能和稳定性,能让我们做出的应用以很高的质量交付给用户。但 Rust 的编译速度和 target 目录占用,一直非常困扰我。

target 占用磁盘是当下 AI 时代非常严峻的问题,尤其在多个 worktree 上开发时,它已经是最让人头疼的事情。我为此买了 2T 的硬盘都还不够,每天都受这件事困扰。我不断寻找各类工具,kache、mdx 等都试过,但都没有真正解决我的问题。

而我是那种不受约束的人,我觉得我可以解决这个问题。既然大家都基于 Cargo,我就直接从 Cargo 本身下手,按照我的设想,结合 AI 时代的特点改造了它。

它遵循我的产品设计方式:约定优于配置(Convention over Configuration),来自 DHH 的设计思想。我认为开发者在使用 Cargo 时,本就不应该操心这种事情。kache、mdx 这类工具都需要一些繁琐的配置,我不这么做,我提供的是开箱即用:你只需要安装,它会直接替换掉你电脑上的 cargo,并提供一套适合绝大多数场景的默认配置和调优。

当然,这些改动非常激进,我不期望它们会被上游 Cargo 接受,也没有太多精力去推动这件事。上游往往要考虑得更全面,比如各种平台上的支持,而我只考虑 macOS、Linux 和 Windows 的开发支持。所以我没有那么多顾虑,可以更放手地去解决我真实遇到的问题。

目前我已经在四台电脑上实际使用:两台 Linux、一台 macOS、一台 Windows。Windows 试得比较少,但在 Linux 和 macOS 上已经连续用了 5 天,我再也没有清理过 target 目录,磁盘也再没有占满过,如下面的截图。从这个结果来看,target 目录占用的问题已经解决了。

Disktree 中主目录的磁盘占用图:~/.cargo/targets 占 99.5 GB 中的 41.7 GB,磁盘剩余 711.9 GB。
2026 年 11 月 4 日,我在 Omarchy 上的主目录,用 Disktree 查看。

剩下的就是编译速度,相比 Go 这类语言还是会慢一些。但我们慢一点,用户用起来更快,相当于我们先辛苦点,把好的结果留给用户。而且这个 fork 在这方面也有帮助:不再需要删掉整个 target 目录,就不会从头编译,之前编译的结果都还留着可以复用,编译其实还更快了。

看看有哪些改动和实测数据。

这一路我在 X 上的记录