#注册 #环境 #输入/输出 #货船 #代理 #公司 #安全

应用 freighter-registry

货船的目的在于帮助社区和企业构建crates.io的代理和开发环境的注册表。

1个不稳定版本

0.3.0 2023年12月25日

开发工具 中排名第645

MIT 许可证

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受此许可证许可。

致谢

依赖关系

~32–49MB
~1M SLoC