10 releases (5 breaking)
0.6.0 | Oct 23, 2023 |
---|---|
0.5.0 | Jul 12, 2022 |
0.4.1 | Jan 19, 2022 |
0.4.0 | Apr 6, 2021 |
0.1.0 | Dec 24, 2018 |
#659 in Cargo plugins
78 downloads per month
Used in cargo-index
57KB
951 lines
Cargo registry index library.
An experimental library for managing a Cargo registry index. See cargo-index for the CLI command that uses this library.
lib.rs
:
This library is for accessing and manipulating a Cargo registry index.
A very basic example:
// Initialize a new index.
reg_index::init(&index_path, "https://example.com", None)?;
// Add a package to the index.
reg_index::add(&index_path, index_url, Some(&manifest_path), None, None)?;
// Packages can be yanked.
reg_index::yank(&index_path, "foo", "0.1.0")?;
// Get the metadata for the new entry.
let pkgs = reg_index::list(&index_path, "foo", None)?;
// Displays something like:
// {"name":"foo","vers":"0.1.0","deps":[],"features":{},"cksum":"d87f097fcc13ae97736a7d8086fb70a0499f3512f0fe1fe82e6422f25f567c83","yanked":true,"links":null}
println!("{}", serde_json::to_string(&pkgs[0])?);
See https://doc.rust-lang.org/cargo/reference/registries.html for documentation about Cargo registries.
Locking
The functions here perform simple filesystem locking to ensure multiple commands running at the same time do not interfere with one another. This requires that the filesystem supports locking.
Dependencies
~12–22MB
~402K SLoC