#github #registry #private #version-control #repository #user #backup

app private-crate-hub

一个私有的Rust包注册库,它安全地将您的包数据存储在GitHub仓库中,简化了管理和分发,同时确保版本控制、备份,以及仅授权用户可访问。

1个不稳定版本

0.1.0 2024年8月11日

228文件系统

Download history 117/week @ 2024-08-10

117 每月下载量

MIT 许可证

23KB
326

Private-Crate-Hub

Private-Crate-Hub是一个私有的Rust包注册库,旨在将所有包数据存储在GitHub仓库中。它提供了一个简单且安全的方式来管理和分发您的私有Rust包,确保您的代码得到版本控制、备份,并且仅授权用户可访问。

我为什么需要它?

在处理私有的Rust项目时,尤其是在使用如release-plz等工具时,将内容发布到公共的crates.io注册库并不是一个选择。管理一个私有注册库通常需要设置SQL数据库、S3存储和其他基础设施,这对小型项目来说可能是过度配置。

对于我的使用案例,我只有少数几个包(~100个),因此我需要一个更简单且不需要大量基础设施的解决方案。GitHub作为一个功能强大且内置版本控制、安全性和备份功能的平台,是此目的的理想选择。通过使用GitHub作为存储后端,我可以消除维护数据库、处理备份或承担额外成本的需要。Private-Crate-Hub使得管理私有包变得简单,利用GitHub的功能使事情保持简单高效。

功能

  • 私有注册库:保持您的Rust包私有和安全,仅对您的团队或组织可访问。
  • GitHub集成:将所有包数据存储在指定的GitHub仓库中,利用GitHub强大的版本控制和安全功能。
  • 无缝Cargo集成:与Rust包管理器Cargo无缝工作,使其易于在现有的Rust项目中使用。

入门指南

使用Docker

您可以使用Docker快速开始使用Private-Crate-Hub。此方法需要最小化设置,并确保环境的一致性。

  1. 拉取Docker镜像:
docker pull giangndm/private-crate-hub:latest
  1. ** 使用环境变量运行 **

您可以使用以下环境变量运行Private-Crate-Hub Docker容器

  • GITHUB_TOKEN:具有必要仓库访问权限的GitHub个人访问令牌。
  • OWNER:拥有仓库的GitHub用户名或组织名称。
  • REPO:存储包数据的GitHub仓库名称。
  • BRANCH:存储包数据的仓库分支。
  • PUBLIC_ENDPOINT:Private-Crate-Hub可访问的公开端点。
  • 授权:用于保护公共端点的授权令牌或方法。

以下是Docker命令

docker run -e GITHUB_TOKEN=your_github_token \
           -e OWNER=your_github_username_or_org \
           -e REPO=your_repository_name \
           -e BRANCH=your_branch_name \
           -e PUBLIC_ENDPOINT=https://your-public-endpoint.com \
           -e AUTHORIZATION=your_authorization_token \
           giangndm/private-crate-hub:latest

在Rust项目中使用

  1. ** Cargo配置 **
[registry]
global-credential-providers = ["cargo:token"]

[registries]
my-registry = { index = "sparse+http://your-public-endpoint.com/index/" }
  1. ** 依赖项 **

registry字段添加到每个私有库中

lib1 = { path = "../../crates/lib1", version = "0.1.2", registry = "my-registry" }

依赖项

~20–32MB
~541K SLoC