获得徽章 0
- ### **它是如何工作的?**
`cargo-public-api` 依赖于 Rust 编译器的 **`rustdoc` JSON 输出**。
1. 它会调用 `cargo +nightly rustdoc` 并要求生成 JSON 格式的文档。
2. 然后解析这些 JSON 数据,提取出所有的公共定义。
3. 最后根据你的需求进行格式化展示或对比。
> **注意**:由于 `rustdoc` 的 JSON 格式目前仍然是不稳定的(Unstable),因此使用此工具通常需要安装 **Nightly** 版本的 Rust 工具链。
---
### **常用命令示例**
* **列出当前项目的所有公共 API:**
```bash
cargo public-api
```
* **对比当前代码与 Git 上一次提交的差异:**
```bash
cargo public-api --diff-git-checkouts main current-branch
```
* **仅显示发生变化的 API:**
```bash
cargo public-api --diff-git-checkouts main current-branch --changes-only
```
### **为什么不直接用 `cargo-semver-checks`?**
这两个工具经常被拿来比较,但侧重点略有不同:
* **`cargo-semver-checks`**:更智能,它会自动判断你的修改是否违反了 SemVer 规则(例如:你改了一个字段类型,它会告诉你这需要升级大版本)。
* **`cargo-public-api`**:更直观、更底层。它只是如实地告诉你“API 变了”,适合那些想要完全掌控 API 每一个字节变化的开发者,或者用于生成 API 变更日志。
---展开评论2 - 最近在研究 AI Agent 的落地场景,发现还是"小而美"的工具最能解决问题。
刚才试着复刻了一个极简版的 AI 自动化脚本,代码不到 100 行,但处理日常重复工作的效率提升了不止一倍。
感觉现在的开发逻辑真的变了,不再是死磕语法,而是看谁能更好地调教模型。jym 最近都在用 AI 做什么好玩的工具?求安利!
#AI 能力提升场# #AICoding交流#展开评论3
![[流泪]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_6.dde0d83.png)
![[奸笑]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_17.bcebf79.png)