一些有用的 crate
总是会有一些新的 crate 发布,有些 crate 在命令行应用的开发中会很有用。
本书中所引用过的 crate
- anyhow - 提供
anyhow::Error
以进行简单的错误处理 - asset_cmd - 简化 CLI 的集成测试
- atty - 检测应用程序是否运行在 tty 上。
- clap-verbosity-flag - 添加
--verbose
标签到 structopt CLI - clap - 命令行参数解析器
- confy - 无样板的配置管理
- convey - 简化人机输出
- crossbeam-channel - 为消息传递提供多生产者——多消费者 channel
- ctrlc - 简易 ctrl-c 处理程序
- env_logger - 通过环境变量实现日志配置
- exitcode - 系统退出码常量
- human-panic - panic 消息处理程序
- indicatif - 进度条和微框
- log - 在实现之上提供日志抽象
- predicates - 实现布尔值谓词函数(boolean-valued predicate functions)
- proptest - 属性测试框架
- serde_json - 序列化、反序列化为 JSON
- signal-hook - 处理 UNIX 信号
- structopt - 解析命令行参数为一个结构体
- tokio - 异步运行时
- wasm-pack - 用于构建 WebAssembly 的工具
其他 crate
由于众多的 Rust ceate 在持续不断地变化,一个查找 crate 的好地方是 lib.rs 的 crate 索引。以下是一些可能会对构建 CLI 有用的( lib.rs 中索引的)特定类别: