Skip to content

发布 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_cli

GitHub 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表格(另一种选择)

第 27 章:Web 服务器