8 个版本
0.1.7 | 2024年1月5日 |
---|---|
0.1.6 | 2023年3月10日 |
0.1.5 | 2023年2月12日 |
292 在 操作系统 分类中
每月 53 次下载
25KB
298 行
binswap-github
从 GitHub 下载和交换二进制文件
用法
binswap
使用与 cargo-binstall
相同的基础设施来确定最新二进制文件存储的位置。 binswap-github
是专门为此目的而设计的后端。它使用 GitHub 发布版来下载支持的目标的二进制文件,然后将它们下载到指定位置,或者可选地与当前执行的二进制文件交换。
这对于在包管理器之外分发二进制文件或在用户预期不会安装 Rust 的环境中尤其有用。使用此crate,可以将更新机制捆绑到分发二进制文件中。
示例
以下示例从 GitHub 下载最新的 ripgrep
版本,并将其与当前执行的二进制文件交换。这里添加了 .dry_run(true)
来模拟执行,但不进行更新。
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
binswap_github::builder()
.repo_author("BurntSushi")
.repo_name("ripgrep")
.asset_name("ripgrep")
.bin_name("rg")
.dry_run(true)
.build()?
.fetch_and_write_in_place_of_current_exec()
.await?;
Ok(())
}
以下操作与上述相同,但只是将生成的二进制文件写入新文件。
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
binswap_github::builder()
.repo_author("BurntSushi")
.repo_name("ripgrep")
.asset_name("ripgrep")
.bin_name("rg")
.dry_run(true)
.build()?
.fetch_and_write_to("./rg")
.await?;
Ok(())
}
许可证
许可证为以下之一
- MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
- Apache 许可证,版本 2.0,(LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
由您选择。
贡献
除非您明确表示,否则任何有意提交以包含在您的工作中的贡献,根据 Apache-2.0 许可证定义,都应如上所述双重许可,不附加任何额外条款或条件。
依赖
~32–69MB
~1.5M SLoC