This is a Cargo subcommand to ease maintenance of local registries.
This support is often useful for "offline builds" by preparing the list of all Rust dependencies ahead of time and shipping them to a build machine in a pre-ordained format. A local registry is an index and a collection of tarballs, all of which currently originate from crates.io.
The purpose of this subcommand will be to manage these registries and allow adding/deleting packages with ease.
To install from source you can execute:
cargo install cargo-local-registry
Note that you'll need the build tools listed below for this to succeed. If you'd prefer to download precompiled binaries assembled on the CI for this repository, you may also use the GitHub releases
As part of the build process you will need gcc, openssl and cmake in your
PATH.
Afterwards you can build this repository via:
cargo build
And the resulting binary will be inside target/debug
One of the primary operations will be to create a local registry from a lock file itself. This can be done via
cargo local-registry sync path/to/Cargo.lock path/to/registry
This command will:
- Download all dependencies from the crates.io registry
- Verify all checksums of what's downloaded
- Place all downloads in
path/to/registry - Prepare the index of
path/to/registryto reflect all this information
Full usage informaton:
cargo-local-registry [OPTIONS] [PATH] [COMMAND]
Commands:
sync Sync the registry with a Cargo.lock file
add Add a crate to the registry
help Print this message or the help of the given subcommand(s)
Arguments:
[PATH] Path to the local registry
Options:
-s, --sync <SYNC> Sync the registry with lockfile (backwards compatibility)
--host <HOST> Registry index to sync with
--git Vendor git dependencies as well
--no-delete Don't delete older crates in the local registry directory
-v, --verbose... Use verbose output
-q, --quiet No output printed to stdout
-c, --color <COLOR> Coloring: auto, always, never
-h, --help Print help
-V, --version Print version
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in cargo-local-registry by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.