All Projects → killercup → Cargo Edit

killercup / Cargo Edit

Licence: mit
A utility for managing cargo dependencies from the command line.

Programming Languages

rust
11053 projects

Labels

Projects that are alternatives of or similar to Cargo Edit

Rustfix
Automatically apply the suggestions made by rustc
Stars: ✭ 586 (-72.03%)
Mutual labels:  cli, cargo
Kondo
Save disk space by cleaning non-essential files from software projects.
Stars: ✭ 373 (-82.2%)
Mutual labels:  cli, cargo
Jql
A JSON Query Language CLI tool
Stars: ✭ 368 (-82.43%)
Mutual labels:  cli, cargo
Nat
nat - the 'ls' replacement you never knew you needed
Stars: ✭ 1,129 (-46.11%)
Mutual labels:  cli, cargo
Git Tidy
Tidy up stale git branches.
Stars: ✭ 137 (-93.46%)
Mutual labels:  cli
Sphinx Click
A Sphinx plugin to automatically document click-based applications
Stars: ✭ 134 (-93.6%)
Mutual labels:  cli
Ohshitgit
⁉️Oh shit! A cli tool to help you unfuck your git mistakes
Stars: ✭ 135 (-93.56%)
Mutual labels:  cli
Cargo Flash
a cargo extension for programming microcontrollers
Stars: ✭ 134 (-93.6%)
Mutual labels:  cargo
Tenderly Cli
CLI tool for Smart Contract error tracking, monitoring and alerting.
Stars: ✭ 138 (-93.41%)
Mutual labels:  cli
Cellular Automata Voxel Shader
Generate a voxel shader (for MagicaVoxel) from a custom CA rule
Stars: ✭ 137 (-93.46%)
Mutual labels:  cli
Loophole
Polar devices Python API and CLI.
Stars: ✭ 136 (-93.51%)
Mutual labels:  cli
Entrypoint
Composable CLI Argument Parser for all modern .Net platforms.
Stars: ✭ 136 (-93.51%)
Mutual labels:  cli
Site Scan
CLI for capturing website screenshots, powered by puppeteer.
Stars: ✭ 137 (-93.46%)
Mutual labels:  cli
Simplecli
Command Line Interface Library for Arduino
Stars: ✭ 135 (-93.56%)
Mutual labels:  cli
Whereami
📍 Get your geolocation information using freegeoip.app
Stars: ✭ 137 (-93.46%)
Mutual labels:  cli
Startship
Never open sonatype's website again for releasing your libraries on maven central.
Stars: ✭ 135 (-93.56%)
Mutual labels:  cli
Certok
Command line tool to check the validity and expiration dates of SSL certificates.
Stars: ✭ 136 (-93.51%)
Mutual labels:  cli
Nord Xfce Terminal
An arctic, north-bluish clean and elegant Xfce Terminal color theme.
Stars: ✭ 136 (-93.51%)
Mutual labels:  cli
Gk
Go-Kit Genetator
Stars: ✭ 136 (-93.51%)
Mutual labels:  cli
Graphql Cli
📟 Command line tool for common GraphQL development workflows
Stars: ✭ 1,814 (-13.41%)
Mutual labels:  cli

cargo edit

This tool extends Cargo to allow you to add, remove, and upgrade dependencies by modifying your Cargo.toml file from the command line.

Currently available subcommands:

Build Status Build Status Build status Coverage Status crates.io Join the chat at https://gitter.im/cargo-edit/Lobby

Contribution

Thanks for your interest - we gratefully welcome contributions.

Questions can be asked in issues, or on Gitter.

To help us help you get pull requests merged quickly and smoothly, open an issue before submitted large changes. Please keep the contents of pull requests and commits short. Commit messages should include the intent of the commit.

cargo-edit has a moderately comprehensive test suite. Contributions that add/improve tests are awesome. Please add tests for every change.

cargo-edit uses rustfmt for formatting and clippy for linting.

Related Cargo Commands

Installation

Packaging status

Ensure that you have a fairly recent version of rust/cargo installed. On Ubuntu you would also need to install libssl-dev and pkg-config packages.

$ cargo install cargo-edit

If you wish to use a bundled version of openssl:

$ cargo install cargo-edit --features vendored-openssl

Compiler support: requires rustc 1.44+

(Please check cargo's documentation to learn how cargo install works and how to set up your system so it finds binaries installed by cargo.)

Install a sub-set of the commands with cargo install -f --no-default-features --features "<COMMANDS>", where <COMMANDS> is a space-separated list of commands; i.e. add rm upgrade for the full set.

Available Subcommands

cargo add

Add new dependencies to your Cargo.toml. When no version is specified, cargo add will try to query the latest version's number from crates.io.

Examples

$ # Add a specific version
$ cargo add [email protected] --dev
$ # Query the latest version from crates.io and adds it as build dependency
$ cargo add gcc --build
$ # Add a non-crates.io crate
$ cargo add local_experiment --path=lib/trial-and-error/
$ # Add a non-crates.io crate; the crate name will be found automatically
$ cargo add lib/trial-and-error/
$ # Add a crates.io crate with a local development path
$ cargo add my_helper --vers=1.3.1 --path=lib/my-helper/
$ # Add a renamed dependency
$ cargo add thiserror --rename error

Usage

$ cargo add -h
cargo-add
Add dependency to a Cargo.toml manifest file

USAGE:
    cargo add [FLAGS] [OPTIONS] <crate>...

FLAGS:
        --allow-prerelease       Include prerelease versions when fetching from crates.io (e.g. '0.6.0-alpha')
    -B, --build                  Add crate as build dependency
    -D, --dev                    Add crate as development dependency
    -h, --help                   Prints help information
        --no-default-features    Set `default-features = false` for the added dependency
        --offline                Run without accessing the network
        --optional               Add as an optional dependency (for use in features)
    -q, --quiet                  Do not print any output in case of success
    -s, --sort                   Sort dependencies even if currently unsorted
    -V, --version                Prints version information

OPTIONS:
        --branch <branch>           Specify a git branch to download the crate from
        --features <features>...    Space-separated list of features to add. For an alternative approach to enabling
                                    features, consider installing the `cargo-feature` utility
        --git <uri>                 Specify a git repository to download the crate from
        --manifest-path <path>      Path to the manifest to add a dependency to
        --path <path>               Specify the path the crate should be loaded from
    -p, --package <pkgid>           Package id of the crate to add this dependency to
        --registry <registry>       Registry to use
    -r, --rename <rename>           Rename a dependency in Cargo.toml, https://doc.rust-
                                    lang.org/cargo/reference/specifying-
                                    dependencies.html#renaming-dependencies-in-cargotoml Only works
                                    when specifying a single dependency
        --target <target>           Add as dependency to the given target platform
        --upgrade <method>          Choose method of semantic version upgrade.  Must be one of "none" (exact version,
                                    `=` modifier), "patch" (`~` modifier), "minor" (`^` modifier), "all" (`>=`), or
                                    "default" (no modifier) [default: default]  [possible values: none, patch, minor,
                                    all, default]
        --vers <uri>                Specify the version to grab from the registry(crates.io). You can also specify
                                    version as part of name, e.g `cargo add [email protected]`

ARGS:
    <crate>...    Crates to be added


This command allows you to add a dependency to a Cargo.toml manifest file. If <crate> is a github
or gitlab repository URL, or a local path, `cargo add` will try to automatically get the crate name
and set the appropriate `--git` or `--path` value.

Please note that Cargo treats versions like '1.2.3' as '^1.2.3' (and that '^1.2.3' is specified
as '>=1.2.3 and <2.0.0'). By default, `cargo add` will use this format, as it is the one that the
crates.io registry suggests. One goal of `cargo add` is to prevent you from using wildcard
dependencies (version set to '*').

cargo rm

Remove dependencies from your Cargo.toml.

Examples

$ # Remove a dependency
$ cargo rm regex
$ # Remove a development dependency
$ cargo rm regex --dev
$ # Remove a build dependency
$ cargo rm regex --build

Usage

$ cargo rm -h
cargo-rm
Remove a dependency from a Cargo.toml manifest file

USAGE:
    cargo rm [FLAGS] [OPTIONS] <crates>...

FLAGS:
    -B, --build      Remove crate as build dependency
    -D, --dev        Remove crate as development dependency
    -h, --help       Prints help information
    -q, --quiet      Do not print any output in case of success
    -V, --version    Prints version information

OPTIONS:
        --manifest-path <path>    Path to the manifest to remove a dependency from
    -p, --package <package>       Specify the package in the workspace to add a dependency to (see `cargo help pkgid`)

ARGS:
    <crates>...    Crates to be removed

cargo upgrade

Upgrade dependencies in your Cargo.toml to their latest versions.

To specify a version to upgrade to, provide the dependencies in the <crate name>@<version> format, e.g. cargo upgrade docopt@~0.9.0 serde@>=0.9,<2.0.

This command differs from cargo update, which updates the dependency versions recorded in the local lock file (Cargo.lock).

Examples

# Upgrade all dependencies for the current crate
$ cargo upgrade
# Upgrade docopt (to ~0.9) and serde (to >=0.9,<2.0)
$ cargo upgrade docopt@~0.9 serde@>=0.9,<2.0
# Upgrade regex (to the latest version) across all crates in the workspace
$ cargo upgrade regex --workspace
# Upgrade all dependencies except docopt and serde
$ cargo upgrade --exclude docopt serde

Usage

$ cargo upgrade -h
cargo-upgrade
Upgrade dependencies as specified in the local manifest file (i.e. Cargo.toml)

USAGE:
    cargo upgrade [FLAGS] [OPTIONS] [dependency]...

FLAGS:
        --workspace           Upgrade all packages in the workspace
        --allow-prerelease    Include prerelease versions when fetching from crates.io (e.g. 0.6.0-alpha')
        --dry-run             Print changes to be made without making them
    -h, --help                Prints help information
        --offline             Run without accessing the network
        --skip-compatible     Only update a dependency if the new version is semver incompatible
        --to-lockfile         Upgrade all packages to the version in the lockfile
    -V, --version             Prints version information

OPTIONS:
        --exclude <exclude>...    Crates to exclude and not upgrade
        --manifest-path <path>    Path to the manifest to upgrade
    -p, --package <package>       Specify the package in the workspace to add a dependency to (see `cargo help pkgid`)

ARGS:
    <dependency>...    Crates to be upgraded

This command differs from `cargo update`, which updates the dependency versions recorded in the
local lock file (Cargo.lock).

If `<dependency>`(s) are provided, only the specified dependencies will be upgraded. The version to
upgrade to for each can be specified with e.g. `[email protected]` or `serde@>=0.9,<2.0`.

Dev, build, and all target dependencies will also be upgraded. Only dependencies from crates.io are
supported. Git/path dependencies will be ignored.

All packages in the workspace will be upgraded if the `--workspace` flag is supplied.
The `--workspace` flag may be supplied in the presence of a virtual manifest.

If the '--to-lockfile' flag is supplied, all dependencies will be upgraded to the currently locked
version as recorded in the Cargo.lock file. This flag requires that the Cargo.lock file is
up-to-date. If the lock file is missing, or it needs to be updated, cargo-upgrade will exit with an
error. If the '--to-lockfile' flag is supplied then the network won't be accessed.

cargo set-version

Set the version in your Cargo.toml.

Examples

# Set the version to the version 1.0.0
$ cargo set-version 1.0.0
# Bump the version to the next major
$ cargo set-version --bump major
# Bump version to the next minor
$ cargo set-version --bump minor
# Bump version to the next patch
$ cargo set-version --bump patch

Usage

cargo-set-version 0.7.0
Change a package's version in the local manifest file (i.e. Cargo.toml)

USAGE:
    cargo set-version [FLAGS] [OPTIONS] [--] [target]

FLAGS:
        --all          [deprecated in favor of `--workspace`]
        --dry-run      Print changes to be made without making them
    -h, --help         Prints help information
    -V, --version      Prints version information
        --workspace    Modify all packages in the workspace

OPTIONS:
        --bump <bump>             Increment manifest version [possible values: major, minor, patch,
                                  release, rc, beta, alpha]
        --exclude <exclude>...    Crates to exclude and not modify
        --manifest-path <path>    Path to the manifest to upgrade
    -m, --metadata <metadata>     Specify the version metadata field (e.g. a wrapped libraries version)
    -p, --package <pkgid>         Package id of the crate to change the version of

ARGS:
    <target>    Version to change manifests to

For more on metadata, see the semver crate's documentation.

License

Apache-2.0/MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].