{"id":13484799,"url":"https://github.com/kbknapp/cargo-outdated","last_synced_at":"2025-05-13T17:13:58.963Z","repository":{"id":1880493,"uuid":"40099437","full_name":"kbknapp/cargo-outdated","owner":"kbknapp","description":"A cargo subcommand for displaying when Rust dependencies are out of date","archived":false,"fork":false,"pushed_at":"2025-04-10T14:41:13.000Z","size":930,"stargazers_count":1291,"open_issues_count":72,"forks_count":105,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-04-25T14:48:32.399Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kbknapp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-MIT","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-08-03T01:39:00.000Z","updated_at":"2025-04-25T06:24:03.000Z","dependencies_parsed_at":"2023-07-05T21:02:09.548Z","dependency_job_id":"66d79a0b-0322-450d-ade2-fdbc6c01d161","html_url":"https://github.com/kbknapp/cargo-outdated","commit_stats":{"total_commits":321,"total_committers":61,"mean_commits":5.262295081967213,"dds":0.6791277258566979,"last_synced_commit":"45db3a99f4d249e15f96ce8efb775ac2ecf6eefd"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kbknapp%2Fcargo-outdated","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kbknapp%2Fcargo-outdated/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kbknapp%2Fcargo-outdated/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kbknapp%2Fcargo-outdated/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kbknapp","download_url":"https://codeload.github.com/kbknapp/cargo-outdated/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253990498,"owners_count":21995776,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T17:01:33.998Z","updated_at":"2025-05-13T17:13:53.952Z","avatar_url":"https://github.com/kbknapp.png","language":"Rust","readme":"# cargo-outdated\n\n[![Join the chat at https://gitter.im/kbknapp/cargo-outdated](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/kbknapp/cargo-outdated?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge) [![crates.io](https://img.shields.io/crates/v/cargo-outdated.svg)](https://crates.io/crates/cargo-outdated)\nLinux: [![Build Status](https://travis-ci.org/kbknapp/cargo-outdated.svg?branch=master)](https://travis-ci.org/kbknapp/cargo-outdated)\n\nA cargo subcommand for displaying when Rust dependencies are out of date\n\n## About\n\n`cargo-outdated` is for displaying when dependencies have newer versions available.\n\n## How it works\n\nThe functionality of `cargo-outdated` largely depends on the `cargo` builtin command `cargo update`.\n\nTo retrieve the list of available SemVer compatible dependencies, `cargo-outdated` firstly creates a temporary workspace, then executes `cargo update` against it, finally compares the temporary dependency tree with the original one.\n\nSimilarly, to check the latest dependencies, `cargo-outdated` replaces the SemVer requirements of *direct* dependencies with wildcards then goes through the same process.\n\n## Demo\n\nOnce installed (see below) running `cargo outdated` in a project directory looks like the following:\n\n```text\n$ cargo outdated\nName             Project  Compat  Latest   Kind         Platform\n----             -------  ------  ------   ----         --------\nclap             2.20.0   2.20.5  2.26.0   Normal       ---\nclap-\u003ebitflags   0.7.0    ---     0.9.1    Normal       ---\nclap-\u003elibc       0.2.18   0.2.29  Removed  Normal       ---\nclap-\u003eterm_size  0.2.1    0.2.3   0.3.0    Normal       ---\nclap-\u003evec_map    0.6.0    ---     0.8.0    Normal       ---\nnum_cpus         1.6.0    ---     1.6.2    Development  ---\nnum_cpus-\u003elibc   0.2.18   0.2.29  0.2.29   Normal       ---\npkg-config       0.3.8    0.3.9   0.3.9    Build        ---\nterm             0.4.5    ---     0.4.6    Normal       ---\nterm_size-\u003elibc  0.2.18   0.2.29  0.2.29   Normal       cfg(not(target_os = \"windows\"))\n```\n\n## Installing\n\n\u003ca href=\"https://repology.org/project/cargo-outdated/versions\"\u003e\u003cimg align=\"right\" src=\"https://repology.org/badge/vertical-allrepos/cargo-outdated.svg\" alt=\"Packaging status\"\u003e\u003c/a\u003e\n\nPrebuilt versions of `cargo-outdated` can be downloaded using [`cargo binstall`](https://github.com/cargo-bins/cargo-binstall):\n\n```\ncargo binstall cargo-outdated\n```\n\nTo build from source, `cargo-outdated` can be installed or updated with `cargo install`:\n\n```sh\ncargo install --locked cargo-outdated\n```\nor\n\n```sh\ncargo install --locked --git https://github.com/kbknapp/cargo-outdated\n```\n\n## Compiling\n\nFollow these instructions to compile `cargo-outdated`, then skip down to Installation.\n\n 1. Ensure you have current version of `cargo` and [Rust](https://www.rust-lang.org) installed\n 2. Clone the project `$ git clone https://github.com/kbknapp/cargo-outdated \u0026\u0026 cd cargo-outdated`\n 3. Build the project `$ cargo build --release`\n 4. Once complete, the binary will be located at `target/release/cargo-outdated`\n\n## Installation and Usage\n\nAll you need to do is place `cargo-outdated` somewhere in your `$PATH`. Then run `cargo outdated` anywhere in your project directory. For full details see below.\n\n### Linux / OS X\n\nYou have two options, place `cargo-outdated` into a directory that is already located in your `$PATH` variable (To see which directories those are, open a terminal and type `echo \"${PATH//:/\\n}\"`, the quotation marks are important), or you can add a custom directory to your `$PATH`\n\n**Option 1**\nIf you have write permission to a directory listed in your `$PATH` or you have root permission (or via `sudo`), simply copy the `cargo-outdated` to that directory `# sudo cp cargo-outdated /usr/local/bin`\n\n**Option 2**\nIf you do not have root, `sudo`, or write permission to any directory already in `$PATH` you can create a directory inside your home directory, and add that. Many people use `$HOME/.bin` to keep it hidden (and not clutter your home directory), or `$HOME/bin` if you want it to be always visible. Here is an example to make the directory, add it to `$PATH`, and copy `cargo-outdated` there.\n\nSimply change `bin` to whatever you'd like to name the directory, and `.bashrc` to whatever your shell startup file is (usually `.bashrc`, `.bash_profile`, or `.zshrc`)\n\n```sh\nmkdir ~/bin\necho \"export PATH=$PATH:$HOME/bin\" \u003e\u003e ~/.bashrc\ncp cargo-outdated ~/bin\nsource ~/.bashrc\n```\n\n### MacOS\n\nThis library depends on OpenSSL. On MacOS a newer version of OpenSSL than is installed by default is needed. This can be installed with Homebrew via `brew install openssl` or openssl can be vendored in with `--features vendored-openssl`. [Learn more about building OpenSSL here](https://docs.rs/openssl/0.10.30/openssl/#building),\n\n### Windows\n\nOn Windows 7/8 you can add directory to the `PATH` variable by opening a command line as an administrator and running\n\n```sh\nsetx path \"%path%;C:\\path\\to\\cargo-outdated\\binary\"\n```\n\nOtherwise, ensure you have the `cargo-outdated` binary in the directory which you operating in the command line from, because Windows automatically adds your current directory to PATH (i.e. if you open a command line to `C:\\my_project\\` to use `cargo-outdated` ensure `cargo-outdated.exe` is inside that directory as well).\n\n\n### Options\n\nThere are a few options for using `cargo-outdated` which should be somewhat self explanatory.\n\n```text\nDisplays information about project dependency versions\n\nUSAGE:\n    cargo outdated [options]\n\nOptions:\n    -a, --aggressive            Ignores channels for latest updates\n    -h, --help                  Prints help information\n        --format FORMAT         Output formatting [default: list]\n                                [values: list, json]\n    -i, --ignore DEPENDENCIES   Comma separated list of dependencies to not print in the output\n    -x, --exclude DEPENDENCIES  Comma separated list of dependencies to exclude from building\n    -q, --quiet                 Suppresses warnings\n    -R, --root-deps-only        Only check root dependencies (Equivalent to --depth=1)\n    -V, --version               Prints version information\n    -v, --verbose ...           Use verbose output\n    -w, --workspace             Checks updates for all workspace members rather than\n                                only the root package\n        --color COLOR           Coloring: auto, always, never [default: auto]\n                                [values: auto, always, never]\n    -d, --depth NUM             How deep in the dependency chain to search\n                                (Defaults to all dependencies when omitted)\n        --exit-code NUM         The exit code to return on new versions found [default: 0]\n        --features FEATURES     Space-separated list of features\n    -m, --manifest-path FILE    Path to the Cargo.toml file to use\n                                (Defaults to Cargo.toml in project root)\n    -p, --packages PKGS         Packages to inspect for updates\n    -r, --root ROOT             Package to treat as the root package\n```\n\n## Minimum Supported Rust Version (MSRV)\n\nThe MSRV of this crate is what is required to _run_ `cargo outdated`, you may be able to compile\n`cargo outdated` itself on an earlier version of Rust. However, because `cargo outdated` uses\n`cargo` internally, it requires a specific minimum version to run successfully.\n\nThe current MSRV can be found in the `Cargo.toml` under the `package.rust-version` field.\n\n## License\n\n`cargo-outdated` is released under the terms of either the MIT or Apache 2.0 license. See the LICENSE-MIT or LICENSE-APACHE file for the details.\n","funding_links":[],"categories":["Rust","Development tools"],"sub_categories":["Build system"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkbknapp%2Fcargo-outdated","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkbknapp%2Fcargo-outdated","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkbknapp%2Fcargo-outdated/lists"}