Crates.io | cargo-crate |
lib.rs | cargo-crate |
version | 0.2.4 |
source | src |
created_at | 2022-05-09 13:59:18.021051 |
updated_at | 2024-07-20 10:32:25.368624 |
description | A set of crate related cargo commands. You can for instance get the information about a crate, as text or json, including the owners of a crate and its versions. |
homepage | https://github.com/chevdor/cargo-crate |
repository | https://github.com/chevdor/cargo-crate |
max_upload_size | |
id | 583224 |
size | 82,339 |
cargo-crate
is an additional cargo command for your crate(s).
In a nutshell cargo-crate
allows:
fetching information about one or several crates, including the owners
opening crate(s) in crates.io
opening crates' documentation directly
opening crates' repository directly
opening crates' homepage directly
search for crates passing a pattern
You may pass either the name of your crate such as cargo-crate
but you may also provide the path of a package or even a workspace.
You may for instance find the following commands rather useful:
cargo crate open .
cargo crate open . --doc
cargo crate open . --repo
(if you like that, checkout chevdor/gho
)cargo crate info .
For all the command above, if you work on a workspace, all its crates will be handled.
cargo-crate
basically does the same (I’d argue better) than the following (combined):
cargo-show
cargo-info
cargo-open
cargo-search
cargo instal cargo-crate
You will typically use cargo-crate as cargo crate <command> [args]
which you may find a bit verbose.
To make it easier, cargo
allows defining aliases in you $CARGO_HOME/config
file under the [alias]
section.
You may for instance add:
[alias]
...
open = "crate open"
info = "crate info"
show = "crate info"
repo = "crate open --repo"
home = "crate open --home"
docu = "crate open --doc"
Those will allow you the following calls:
cargo repo clap
opens the clap documentation
cargo home clap
opens the clap homepage
etc…
cargo-crate
can be started using both cargo crate
or cargo-crate
.
You can find all available commands below
Usage: cargo-crate [OPTIONS] <COMMAND>
Commands:
info The `info` command returns summarized information
open Opens the crate in a browser
search Search crates.io and return a list of crates matching your search pattern
help Print this message or the help of the given subcommand(s)
Options:
-j, --json Output as json
-h, --help Print help
-V, --version Print version
The `info` command returns summarized information
Usage: cargo-crate info [OPTIONS] [CRATE_NAMES]...
Arguments:
[CRATE_NAMES]... One or more crate, passed as name or path
Options:
-j, --json Output as json
-m, --max-versions <MAX_VERSIONS> Limit the number of versions that are displayed. You can push the limit using this flag [default: 10]
-h, --help Print help
-V, --version Print version
Opens the crate in a browser
Usage: cargo-crate open [OPTIONS] [CRATE_NAMES]...
Arguments:
[CRATE_NAMES]... The name(s) of the crate to open in your browser
Options:
-j, --json Output as json
--repository Open crates.io by default, use this flag to open the repo instead
--homepage Open crates.io by default, use this flag to open the homepage instead
--documentation Open crates.io by default, use this flag to open the documentation instead
-h, --help Print help
-V, --version Print version
Search crates.io and return a list of crates matching your search pattern
Usage: cargo-crate search [OPTIONS] <PATTERN>
Arguments:
<PATTERN> You search pattern
Options:
-j, --json Output as json
-l, --limit <LIMIT> Number of expected results: 0..100 [default: 12]
-r, --raw Show only the list of crates, without extra information
-h, --help Print help
-V, --version Print version
cargo-crate
can be used with fzf
for powerful interactive searches.
function crate_search() {
PATTERN=${@};
if [ $PATTERN ]; then
cargo-crate search --raw -l 100 $PATTERN | fzf -m -i --preview 'cargo-crate info {}' --query "$PATTERN"
else
echo You must provide a starting search pattern
exit 1
fi
}
allows doing cool things like this.