1个不稳定版本
0.3.0 | 2023年12月25日 |
---|
在 开发工具 中排名第645
125KB
2.5K SLoC
货船 - Rust代理和注册表
货船的目的是帮助社区和企业构建crates.io的代理和开发环境的注册表。
为什么需要货船?
在公司中使用Rust开发程序时,我们需要托管crates.io的代理和私有crates注册表,原因如下:
- 开发人员只能使用经过安全和完全评估的公司crates。
- 某些crates需要升级功能或修复错误,而新版本不允许开发人员向上游贡献。
- 某些私有crates在开发过程中与不同的团队和产品共享。
功能有哪些?
- 货船是一个私有crates注册表,也是公共crates索引和从crates.io同步crates的仓库。注册表可以将文件存储在本地磁盘或符合S3的存储服务中。
- 货船拥有一个用于评估公共crates的分析引擎。
- 货船有用于DevOps的评估crates的黑名单和白名单。
如何使用货船?
货船的功能主要由四个部分组成:同步crates索引和crates;同步rustup-init文件;同步rust工具链文件;提供一个支持静态文件服务器、解析Git协议并提供crate发布等API服务的HTTP服务器。
货船可以作为独立的可执行程序运行。您可以使用/usr/local/bin 目录
的命令来构建它:cargo build --release,然后将它复制到您的/usr/local/bin
目录。
1. 同步Crates索引和Crates
要同步crate文件,货船首先需要同步crates索引。您可以使用以下命令同步索引文件:
freighter crates pull
此命令将在默认路径/Users/${USERNAME}/freighter
中创建一个crates.io-index目录并获取索引。如果索引已存在,它将尝试更新它。您还可以使用-c
参数指定一个工作目录
以更改索引和crate的存储位置。
freighter -c /path/to/wokring_dir crates pull
完整下载:接下来,您可以使用带有init参数的下载命令来下载完整的crates文件集。
freighter -c /path/to/wokring_dir crates download --init
增量更新:如果没有init参数,Freighter将比较工作目录中的日志记录来确定需要增量更新的索引和crates。
freighter -c /path/to/wokring_dir crates download
2. 同步rustup-init文件
3. 同步Rust工具链文件
4. Http服务器
如何贡献?
此项目强制执行DCO。
贡献者通过在提交消息中添加“Signed-off-by”行来表示他们遵守这些要求。
This is my commit message
Signed-off-by: Random J Developer <[email protected]>
Git甚至还有一个-s命令行选项,可以自动将其附加到您的提交消息中。
$ git commit -s -m 'This is my commit message'
许可证
Freighter受此许可证许可。
- MIT许可证(LICENSE-MIT 或 https://opensource.org/licenses/MIT)
- Apache许可证2.0版本(LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
致谢
依赖关系
~32–49MB
~1M SLoC