integer32llc/margo · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
Margo
Margo 是一个替代性的 Cargo registry,它完全由静态文件构建, 因此能够被轻松地提供服务。
快速入门
若要在 GitHub Actions 中使用 Margo,例如在 GitHub Pages 上托管您的注册表,请查看我们的 action。
安装 Margo
cargo install margo --index sparse+https://integer32llc.github.io/margo/
初始化注册表
这将在您计划从中提供服务的目录
my-registry-directory 中创建一个新的注册表,
位于
https://my-registry.example.com。
margo init my-registry-directory --base-url https://my-registry.example.com
向注册表添加 crate
若要向注册表添加新的 crate 或版本,请运行 margo add,并指定您提供给 margo init 的目录路径以及用于发布的 .crate 文件路径。
# Acquire a crate package, such as by running `cargo package`
margo add --registry my-registry-directory some-crate/target/package/some-crate-1.2.3.crate
使用您选择的 Web 服务器来提供注册表文件
例如,使用 Python 并在 127.0.0.1 所在的目录中提供注册表服务:
python3 -m http.server --bind '127.0.0.1' --dir 'my-registry-directory'
你应该能够在浏览器中访问 127.0.0.1/config.json。
接下来的步骤是,通过你指定的任何 URL 传输静态文件的方式,从
https://my-registry.example.com 来提供那些文件。
配置 Cargo
# In your Rust project that wants to use `some-crate`
mkdir .cargo
cat >>.cargo/config.toml <<EOF
[registries]
my-registry = { index = "sparse+https://my-registry.example.com" }
EOF
添加你的 crate
cargo add --registry my-registry some-crate
其他 Margo 命令
您可以直接在注册表目录中运行该命令,从而省略 --registry 参数。
列出注册表中的 crate
margo list --registry my-registry
移除一个 crate
margo rm --registry my-registry some-crate --version x.y.z
与 Crates.io 的主要区别
- 💅 不设置文件大小限制
- 💅 可以依赖除 crates.io 之外的其他注册表中的 crate
- 💅 依赖项无需实际存在
- 💅 开发依赖信息不会存储在索引中
- 💅 不要求使用 JavaScript
- 💅 结构更简单,因此更易于根据具体需求进行定制
- 💅 访问权限可通过您当前管理静态文件读写权限的相同方式来控制
贡献代码
请参阅 CONTRIBUTING.md。
开发指南
请参阅 DEVELOPMENT.md。