zerus

Crates.iozerus
lib.rszerus
version0.11.0
created_at2022-08-07 15:14:28.97045+00
updated_at2025-02-10 03:54:41.236493+00
descriptionLightweight binary to download only project required crates for offline crates.io mirror
homepagehttps://github.com/wcampbell0x2a/zerus
repositoryhttps://github.com/wcampbell0x2a/zerus
max_upload_size
id640248
size106,580
wcampbell (wcampbell0x2a)

documentation

README

zerus

github crates.io docs.rs build status

Lightweight binary to download only project required crates for offline crates.io mirror

Build zerus

Either build from published source in crates.io.

$ cargo install zerus --locked

Or download from github releases.

Usage

Usage: zerus [OPTIONS] <MIRROR_PATH> [WORKSPACES]...

Arguments:
  <MIRROR_PATH>    new directory to contain offline mirror crate files
  [WORKSPACES]...  list of Cargo.toml files to vendor depends

Options:
      --build-std <VERSION>            Cache build-std depends for nightly version
      --git-index-url <GIT_INDEX_URL>  Hostname for git index crates.io
      --skip-git-index                 Skip download of git index crates.io
  -h, --help                           Print help
  -V, --version                        Print version

Example of adding dependencies of two projects, meant to be hosted on 127.0.0.1.

$ zerus new-mirror ../deku/Cargo.toml ../adsb_deku/Cargo.toml --git-index-url http://127.0.0.1

Adding the top 100 rust crates used by rust-playground is easy:

$ git clone https://github.com/rust-lang/rust-playground
$ zerus new-mirror rust-playground/top-crates/Cargo.toml

Serve mirror

Use any http(s) server.

Build with mirror

Add the following to the .cargo/config file(replacing IP with your ip).

[source.zerus]
registry = "sparse+http://[IP]/crates.io-index/"

[source.crates-io]
replace-with = "zerus"

Margo

Through the use of margo, you can make a alternate Cargo registry without downloading the entire crates.io git index.

$ zerus mirror ../deku/Cargo.toml --build-std nightly --skip-git-index
$ margo add --registry my-registry-directory mirror/*/*/*/*/*/*.crate
Commit count: 164

cargo fmt