Sapphire: 基于 Rust 的 macOS 包管理器 (Homebrew 替代方案)
Sapphire 是一个基于 Rust 开发的 macOS 包管理器,作为 Homebrew 的替代方案。它目前处于 Alpha 阶段,支持安装和管理 Formulae(命令行工具、库等)和 Casks(桌面应用程序)。项目包含 sapphire-core 核心库和 sapphire-cli 命令行界面。
当前功能包括 Bottle 和 Cask 的安装与卸载,并行下载,以及自动依赖解析。未来计划包括升级、清理、重新安装等命令,以及环境初始化等功能。
用户可以通过 `sapphire` 命令进行更新、搜索、安装、卸载等操作。项目欢迎贡献,包括测试、UI/UX 改进等。
alexykn/sapphire
一个基于 Rust 的 macOS 包管理器。
License
BSD-3-Clause license 82 stars 3 forks
警告:ALPHA 软件 > Sapphire 尚处于实验阶段,正在积极开发中,可能不稳定。使用风险自负!
先用 brew 卸载一个 cask,然后用 Sapphire 重新安装,会导致安装路径略有不同,您的用户设置等将不会自动迁移。
Sapphire 是一个下一代、由 Rust 驱动的包管理器,其灵感来源于 Homebrew。 它可以安装和管理:
- Formulae: 命令行工具、库和语言
- Casks: macOS 上的桌面应用程序和相关文件
目前仅支持 ARM 架构,可能会在未来添加 x86 支持
⚙️ 项目结构
- sapphire-core 核心库:负责获取、依赖解析、存档解压、文件处理(应用、二进制文件、pkg 安装包、字体、插件、zap/preflight/uninstall 等)。
- sapphire-cli 命令行界面:
sapphire
可执行文件,封装了核心库。
🚧 当前状态
- Bottle 安装和卸载
- Cask 安装和卸载
- 并行下载和安装以提高速度
- 自动依赖解析和安装
- 从源代码构建 Formulae(非常早期的实现)
🚀 路线图
- Upgrade 命令,用于更新已安装的软件包
- Cleanup 命令,用于清理旧的下载、版本和缓存
- Reinstall 命令,用于快速重新安装
- Prefix isolation: 支持
/opt/sapphire
作为独立的布局 sapphire init
助手,用于引导您的环境- Ongoing 错误修复和稳定性改进
📦 用法
# 打印帮助信息
sapphire --help
# 更新元数据
sapphire update
# 搜索软件包
sapphire search <formula/cask>
# 获取软件包信息
sapphire info <formula/cask>
# 安装 bottles 或 casks
sapphire install <formula/cask>
# 从源代码构建并安装一个 formula
sapphire install --build-from-source <formula>
# 卸载
sapphire uninstall <formula/cask>
# (即将推出)
sapphire upgrade [--all] <name>
sapphire cleanup
sapphire init
🏗️ 从源代码构建
前提条件: Rust 工具链 (stable)。
git clone <repo-url>
cd sapphire
cargo build --release
sapphire
二进制文件将位于 target/release/sapphire
。将其添加到您的 PATH
环境变量中。
🤝 贡献
Sapphire 的发展离不开您的反馈和代码!我们特别期待:
- Cask 和 Bottle 安装 +
--build-from-source
的测试和错误报告 - 核心模块和 cask 模块的测试覆盖率
- CLI UI/UX 改进
- 参见 CONTRIBUTING.md
欢迎提出 issue 或 PR。每一份贡献都至关重要!
📄 许可证
- Sapphire: BSD‑3‑Clause - 参见 LICENSE.md
- 灵感来源于 Homebrew BSD‑2‑Clause — 参见 NOTICE.md
Alpha 软件。不提供任何保证。请谨慎使用。