#cli #cargo #crate #cargo-subcommand

app cargo-crate

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.

4 releases

Uses new Rust 2021

new 0.1.4 May 13, 2022
0.1.3 May 13, 2022
0.0.3 May 12, 2022

#87 in Cargo plugins

Download history 8/week @ 2022-05-03 176/week @ 2022-05-10

184 downloads per month

MIT license

17KB
127 lines

cargo-crate

Intro

cargo-crate is an additional cargo command for your crate. It basiscally does the same (I’d argue better) than the following:

  • cargo-show

  • cargo-info

  • cargo-open

  • cargo-search

and does not require installing several crates/commands.

Features

In a nutshell cargo-crate allows:

  • fetching information about one or several crates, including its owners

  • opening a crate in crates.io

  • opening a crates' documentation directly

  • opening a crates' repository directly

  • opening a crates' homepage directly

Install

cargo instal cargo-crate

Aliases

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…​

Usage

cargo-crate can be started using both cargo crate or cargo-crate.

Help

cargo-crate 0.1.3
Wilfried Kopp <chevdor@gmail.com>
You can find all available commands below

USAGE:
    cargo-crate [OPTIONS] <SUBCOMMAND>

OPTIONS:
    -h, --help       Print help information
    -j, --json       Output as json
    -V, --version    Print version information

SUBCOMMANDS:
    help      Print this message or the help of the given subcommand(s)
    info      The `info` command returns summarized information
    open      Opens the crate in a browser
    search    The `search` command returns a list of crates matching your search pattern

Info command

cargo-crate-info 0.1.3
Wilfried Kopp <chevdor@gmail.com>
The `info` command returns summarized information

USAGE:
    cargo-crate info [OPTIONS] [CRATE_NAME]...

ARGS:
    <CRATE_NAME>...    One or more crate names

OPTIONS:
    -h, --help
            Print help information

    -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]

    -V, --version
            Print version information

Open command

cargo-crate-open 0.1.3
Wilfried Kopp <chevdor@gmail.com>
Opens the crate in a browser

USAGE:
    cargo-crate open [OPTIONS] <CRATE_NAME>

ARGS:
    <CRATE_NAME>    The name of the crate to open in your browser

OPTIONS:
        --documentation    We open crates.io by default, use this flag to open the documentation
                           instead
    -h, --help             Print help information
        --homepage         We open crates.io by default, use this flag to open the homepage instead
    -j, --json             Output as json
        --repository       We open crates.io by default, use this flag to open the repo instead
    -V, --version          Print version information

Search command

cargo-crate-search 0.1.3
Wilfried Kopp <chevdor@gmail.com>
The `search` command returns a list of crates matching your search pattern

USAGE:
    cargo-crate search [OPTIONS] <PATTERN>

ARGS:
    <PATTERN>    You search pattern

OPTIONS:
    -h, --help             Print help information
    -j, --json             Output as json
    -l, --limit <LIMIT>    Number of expected results: 0..100 [default: 32]
    -V, --version          Print version information

Advanced Usage

cargo-crate can be used with fzf for powerful interactive searches.

function crate_search() {
    PATTERN=${@};
    if [ $PATTERN ]; then
        cargo-crate search -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.

Dependencies

~15–26MB
~484K SLoC