Skip to content

waittide/stew-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

stew — 独立的预编译二进制包管理器

这是用 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 使用 rustlsindicatif 提供进度条。
  • 基于 inquire 的交互界面,支持选择、多选、确认和文本输入。
  • 使用 serde_json 往返读写锁文件,并通过 sha2 计算二进制文件哈希。
  • 通过 tarflate2xz2zstd 解压 tar、zip、tar.gz、tar.xz 与 tar.zst 文件。
  • 提供跨平台默认路径:Linux/macOS 使用 $XDG_*,Windows 使用 %LOCALAPPDATA%
  • stew upgrade --all 会遵循 excludedFromUpgradeAll 排除列表。

构建

cargo build --release
# 二进制文件位于 target/release/stew

工作区

crates/
├── stew-core/    # 无 UI 的业务基础组件(配置、锁文件、GitHub 客户端、安装器)
└── stew-cli/     # CLI 入口和 8 个子命令

stew-core 的依赖较少,可以嵌入其他项目;stew 则加入 clapinquireowo-colors,以提供交互式使用体验。

配置

在 Linux/macOS 上,stew 会在 $XDG_CONFIG_HOME/stew 中查找 stew.config.json;在 Windows 上则会在 %LOCALAPPDATA%\stew\Config 中查找。 首次运行时会自动创建该文件;之后可运行 stew config 更新配置。

许可证

本项目采用 MIT 许可证,与原版 stew 项目相同。

About

一个从 GitHub release 安装预编译工具的独立包管理器

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages