这是用 Rust 重写的 stew。它可以从
GitHub Release 或任意 URL 将二进制文件安装到 ~/.local/bin,并提供便于移植的
Stewfile 和可复现的 Stewfile.lock.json。
stew install junegunn/fzf # 最新版本
stew install junegunn/fzf@0.27.1 # 指定标签
stew install https://github.com/cli/cli/releases/download/v2.4.0/gh_2.4.0_macOS_amd64.tar.gz
stew install Stewfile
stew install Stewfile.lock.json
stew list # 查看已安装的程序
stew upgrade --all
stew uninstall rg
stew search ripgrep
stew browse sharkdp/hyperfine
stew config # 交互式配置路径
- 基于
tokio的异步运行时;reqwest使用rustls;indicatif提供进度条。 - 基于
inquire的交互界面,支持选择、多选、确认和文本输入。 - 使用
serde_json往返读写锁文件,并通过sha2计算二进制文件哈希。 - 通过
tar、flate2、xz2和zstd解压 tar、zip、tar.gz、tar.xz 与 tar.zst 文件。 - 提供跨平台默认路径:Linux/macOS 使用
$XDG_*,Windows 使用%LOCALAPPDATA%。 stew upgrade --all会遵循excludedFromUpgradeAll排除列表。
cargo build --release
# 二进制文件位于 target/release/stewcrates/
├── stew-core/ # 无 UI 的业务基础组件(配置、锁文件、GitHub 客户端、安装器)
└── stew-cli/ # CLI 入口和 8 个子命令
stew-core 的依赖较少,可以嵌入其他项目;stew 则加入 clap、inquire
和 owo-colors,以提供交互式使用体验。
在 Linux/macOS 上,stew 会在 $XDG_CONFIG_HOME/stew 中查找
stew.config.json;在 Windows 上则会在 %LOCALAPPDATA%\stew\Config 中查找。
首次运行时会自动创建该文件;之后可运行 stew config 更新配置。
本项目采用 MIT 许可证,与原版 stew 项目相同。