发布 CLI 工具
交叉编译
bash
# 添加目标平台
rustup target add x86_64-pc-windows-msvc
rustup target add x86_64-unknown-linux-musl
rustup target add aarch64-apple-darwin
# 构建
cargo build --release --target x86_64-unknown-linux-musl
# 使用 cross 简化交叉编译
cargo install cross
cross build --release --target x86_64-unknown-linux-musl使用 Cargo Binstall
bash
# 安装
cargo install cargo-binstall
# 发布后安装
cargo binstall my_cliGitHub Releases
yaml
# .github/workflows/release.yml
name: Release
on:
push:
tags:
- 'v*'
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build
run: cargo build --release
- name: Release
uses: softprops/action-gh-release@v1
with:
files: target/release/my_cli练习
练习 1:待办事项 CLI
创建一个待办事项管理工具,支持:
add- 添加任务list- 列出任务done- 标记完成remove- 删除任务
练习 2:文件搜索工具
实现一个支持以下功能的搜索工具:
- 递归搜索目录
- 正则表达式匹配
- 彩色输出
- 显示匹配位置
练习 3:系统信息查询
创建一个工具显示系统信息:
- CPU 信息
- 内存使用
- 磁盘空间
- 网络接口
小结
本章我们学习了:
- ✅ Clap 参数解析
- ✅ 子命令实现
- ✅ 交互式 CLI
- ✅ 彩色输出
- ✅ 错误处理
- ✅ 表格输出
- ✅ 发布 CLI 工具
CLI 库推荐
| 库 | 用途 |
|---|---|
| clap | 参数解析 |
| colored | 彩色输出 |
| dialoguer | 交互对话框 |
| indicatif | 进度条 |
| anyhow | 错误处理 |
| tabled | 表格输出 |
| crossterm | 终端控制 |
| comfy-table | 表格(另一种选择) |