krates
Create graphs of crates gathered from cargo metadata
0.21.3
5.6M downloads/mo
#4279 most downloaded on crates.io
EmbarkStudios/krates
What this package is like to depend on
Last release 1 months ago
29 Jun 2026
Release timing varies
gaps range from 8 days to 10 months
Nearly every release is documented
notes for 53 of 53 stable releases
4 versions withdrawn
withdrawn after publishing
7 years old
57 releases · first in 2020
4 releases in the last 12 months
see the full history below
Release timeline
57 releases · Jan 2020 to Jun 2026Releases
latest 57-
0.21.329 Jun 2026Release notes
Open source →Changed
- PR#114 updated crates, pinning
indexmapto avoid multiple versions of thehashbrowncrate.
Release notes
Open source →Changed
- PR#114 updated crates, pinning
indexmapto avoid multiple versions of thehashbrowncrate.
- PR#114 updated crates, pinning
-
0.21.222 May 2026 -
0.21.110 Apr 2026 -
0.21.001 Apr 2026Release notes
Open source →Changed
- PR#107 updated crates.
Removed
- PR#107 removed the
metadatafeature and thus compatibility with cargo_metadata.
Fixed
- PR#107 fixed an issue where crates which renamed their lib target and were gated behind a feature in a dependent that didn't rename it would be pruned from the final graph erroneously.
Release notes
Open source →Changed
- PR#107 updated crates.
Removed
- PR#107 removed the
metadatafeature and thus compatibility with cargo_metadata.
Fixed
- PR#107 fixed an issue where crates which renamed their lib target and were gated behind a feature in a dependent that didn't rename it would be pruned from the final graph erroneously.
-
0.20.022 May 2025 -
0.19.003 Apr 2025 -
0.18.127 Feb 2025 -
0.18.024 Feb 2025Release notes
Open source →Release notes
Open source → -
0.17.514 Nov 2024 -
0.17.414 Nov 2024Release notes
Open source →Fixed
- PR#96 fixed an issue where package specs didn't allow the
@separator, resolving cargo-deny#717.
Release notes
Open source →Fixed
- PR#96 fixed an issue where package specs didn't allow the
@separator, resolving cargo-deny#717.
- PR#96 fixed an issue where package specs didn't allow the
-
0.17.311 Nov 2024Release notes
Open source →Fixed
- PR#94 fixed an issue with canonical path mismatches (I presume on Windows). Thanks @Tastaturtaste!
Added
-
0.17.220 Sep 2024 -
0.17.102 Aug 2024 -
0.17.026 Jun 2024Release notes
Open source →Added
- PR#90 added
Krates::resolved_dependencyto get theKrate(if any) that was resolved for aPackage'sDependency.
Fixed
- PR#86 and PR#87 resolved #85 caused by the stable package format URL-encoding query parameters, unlike the old opaque format, causing
kratesto be unable to resolve dependencies to the appropriate crate node.
Changed
- PR#90 made
cargo_metadataoptional, if not selected types internal to this crate are used (and exported) instead. The types are currently mostly the same, but this might change in the future.
- PR#90 added
-
0.16.1012 Apr 2024 -
0.16.909 Apr 2024Release notes
Open source → -
0.16.809 Apr 2024 withdrawnRelease notes
Open source → -
0.16.720 Mar 2024Release notes
Open source →Fixed
- PR#78 fixed an issue where setting manifest_path to
Cargo.tomlwithout preceding./would cause the current directory be set to empty, and cargo_metadata to fail.
- PR#78 fixed an issue where setting manifest_path to
-
0.16.624 Jan 2024 -
0.16.524 Jan 2024Release notes
Open source → -
0.16.422 Jan 2024 -
0.16.322 Jan 2024Release notes
Open source →Fixed
- PR#71 fixed an issue introduced in PR#70 that would cause duplicates to not be detected correctly. Thanks @louisdewar!
-
0.16.221 Jan 2024 -
0.16.120 Jan 2024 -
0.16.019 Jan 2024Release notes
Open source →Fixed
- PR#65 resolved #64 by adding support for the newly stabilized (currently nightly only) package id format.
Changed
- PR#65 changed
Kidfrom just a type alias forcargo_metadata::PackageIdto an actual type that has accessors for the various components of the id. It also specifies its ownOrdetc implementation so that those ids are sorted the exact same as the old version.
-
0.15.312 Jan 2024 -
0.15.212 Jan 2024 withdrawn -
0.15.103 Sep 2023Release notes
Open source →Added
- PR#59 added
Krates::krates_filtered, allowing filtering of crates based upon their edge kinds.
- PR#59 added
-
0.15.023 Aug 2023Release notes
Open source →Changed
- PR#58 removed the
prefer-indexfeature, which brought intame-index, in favor of just letting the user provide a callback that can be used to gather index information, freeing this crate from dependency issues and allowing downstream crates more flexibility.
- PR#58 removed the
-
0.14.121 Aug 2023 -
0.14.025 Jul 2023 -
0.13.113 Jun 2023Release notes
Open source →Fixed
- PR#54 fixed an issue where the crates.io index was unconditionally opened, and synced, if the
prefer-indexfeature was enabled, causing long stalls if using the crates.io sparse index instead.
- PR#54 fixed an issue where the crates.io index was unconditionally opened, and synced, if the
-
0.13.004 Apr 2023Release notes
Open source →Changed
- PR#53 updated
cfg-exprto 0.14 andcrates-indexto 0.19.
Fixed
- PR#53 added support for using the HTTP sparse index for crates.io. If the sparse index was enabled and there wasn't a regular git index (for example, if you use
dtolnay/rust-toolchain@stablein your CI) this would cause no index to be used to fix crate features ifprefer-indexwas enabled.
- PR#53 updated
-
0.12.625 Nov 2022 -
0.12.508 Nov 2022Release notes
Open source →Fixed
- PR#51 resolved #50 by no longer treating the feature set in the index as authoritative, but rather just merging in the keys that were not already located in the feature set from the crate itself. This would mean that features that are present in both but with different sub-features from the index will now be lost, but that can be fixed later if it is actually an issue.
-
0.12.402 Nov 2022 -
0.12.301 Nov 2022 -
0.12.228 Oct 2022Release notes
Open source →Fixed
- PR#45 fixed a bug where optional dependencies could be pruned if their name differed from the feature that enabled them.
Added
- PR#45 added
Krates::direct_dependenciesas a complement toKrates::direct_dependents.
-
0.12.125 Oct 2022 -
0.12.006 Oct 2022Release notes
Open source →Added
- PR#42 added support for features, adding nodes for each unique future, and linking edges between dependencies and features themselves. This (hopefully) properly takes into account the existing ways of pruning the graph via targets, exclusions etc. It also allows the retrieval of that final feature set via
Krates::get_enabled_features.
Fixed
- PR#42 added support for features, adding nodes for each unique future, and linking edges between dependencies and features themselves. This (hopefully) properly takes into account the existing ways of pruning the graph via targets, exclusions etc. It also allows the retrieval of that final feature set via
-
0.11.004 Jul 2022 -
0.10.116 Feb 2022Release notes
Open source → -
0.10.004 Feb 2022 -
0.9.021 Oct 2021Release notes
Open source →Fixed
- PR#35 changed
Krates::search_matchesto get rid of unnecessary lifetime coupling.
Changed
- PR#35 updated
cfg-exprto 0.9.
- PR#35 changed
-
0.8.120 Jul 2021Release notes
Open source →Added
- PR#34 added support for the
--locked,--offline, and--frozenarguments.
- PR#34 added support for the
-
0.8.016 Jul 2021 -
0.7.011 Mar 2021Release notes
Open source →Changed
- Updated
cargo_metadatato 0.13.0, which usescaminofor path information, so it is reexported and used forKrates::lock_path
- Updated
-
0.6.012 Feb 2021 -
0.5.020 Oct 2020Release notes
Open source →Added
- Added
impl PartialEq<cargo_metadata::DependencyKind> for DepKind
Changed
- Updated
semver,cargo_metadata, and `cfg-expr.
- Added
-
0.4.213 Oct 2020Release notes
Open source →Fixed
- PR#19 Fixed an issue where
gitsources could differ in package id representation between the actual source, and the id used to specify it as a dependency from another package.
- PR#19 Fixed an issue where
-
0.4.128 Jul 2020 -
0.4.028 Jul 2020 withdrawnRelease notes
Open source →Fixed
- Align
semverversion with the same one used bycargo_metadata, again.
- Align
-
0.3.118 Jul 2020 withdrawn -
0.3.004 Jun 2020Release notes
Open source →Changed
- Updated
cfg-exprto 0.4.0, and added thetargetsfeature, will enable thetargetsfeature in cfg-expr, allowing the use of matching cfg expressions againsttarget_lexicon::Tripleinstead of only built-in targets/names.
- Updated
-
0.2.005 Feb 2020Release notes
Open source →Changed
- Updated
cfg-exprto 0.2.0, so only 1.41.0 built-in targets are fully supported
- Updated
-
0.1.104 Feb 2020Release notes
Open source →Added
- Added
PkgSpec, an implementation of cargo's package id specifications - Added
Builder::workspace, which allows the equivalent ofcargo <cmd> --workspacewhen building the graph - Added
Builder::exclude, which allows the equivalent ofcargo <cmd> --excludewhen building the graph
- Added
-
0.1.014 Jan 2020Release notes
Open source →Added
- Initial implementation
<!-- next-url --> [Unreleased]: https://github.com/EmbarkStudios/krates/compare/0.21.3...HEAD [0.21.3]: https://github.com/EmbarkStudios/krates/compare/0.21.2...0.21.3 [0.21.2]: https://github.com/EmbarkStudios/krates/compare/0.21.1...0.21.2 [0.21.1]: https://github.com/EmbarkStudios/krates/compare/0.21.0...0.21.1 [0.21.0]: https://github.com/EmbarkStudios/krates/compare/0.20.0...0.21.0 [0.20.0]: https://github.com/EmbarkStudios/krates/compare/0.19.0...0.20.0 [0.19.0]: https://github.com/EmbarkStudios/krates/compare/0.18.1...0.19.0 [0.18.1]: https://github.com/EmbarkStudios/krates/compare/0.18.0...0.18.1 [0.18.0]: https://github.com/EmbarkStudios/krates/compare/0.17.5...0.18.0 [0.17.5]: https://github.com/EmbarkStudios/krates/compare/0.17.4...0.17.5 [0.17.4]: https://github.com/EmbarkStudios/krates/compare/0.17.3...0.17.4 [0.17.3]: https://github.com/EmbarkStudios/krates/compare/0.17.2...0.17.3 [0.17.2]: https://github.com/EmbarkStudios/krates/compare/0.17.1...0.17.2 [0.17.1]: https://github.com/EmbarkStudios/krates/compare/0.17.0...0.17.1 [0.17.0]: https://github.com/EmbarkStudios/krates/compare/0.16.10...0.17.0 [0.16.10]: https://github.com/EmbarkStudios/krates/compare/0.16.9...0.16.10 [0.16.9]: https://github.com/EmbarkStudios/krates/compare/0.16.8...0.16.9 [0.16.8]: https://github.com/EmbarkStudios/krates/compare/0.16.7...0.16.8 [0.16.7]: https://github.com/EmbarkStudios/krates/compare/0.16.6...0.16.7 [0.16.6]: https://github.com/EmbarkStudios/krates/compare/0.16.5...0.16.6 [0.16.5]: https://github.com/EmbarkStudios/krates/compare/0.16.4...0.16.5 [0.16.4]: https://github.com/EmbarkStudios/krates/compare/0.16.3...0.16.4 [0.16.3]: https://github.com/EmbarkStudios/krates/compare/0.16.2...0.16.3 [0.16.2]: https://github.com/EmbarkStudios/krates/compare/0.16.1...0.16.2 [0.16.1]: https://github.com/EmbarkStudios/krates/compare/0.16.0...0.16.1 [0.16.0]: https://github.com/EmbarkStudios/krates/compare/0.15.3...0.16.0 [0.15.3]: https://github.com/EmbarkStudios/krates/compare/0.15.2...0.15.3 [0.15.2]: https://github.com/EmbarkStudios/krates/compare/0.15.1...0.15.2 [0.15.1]: https://github.com/EmbarkStudios/krates/compare/0.15.0...0.15.1 [0.15.0]: https://github.com/EmbarkStudios/krates/compare/0.14.1...0.15.0 [0.14.1]: https://github.com/EmbarkStudios/krates/compare/0.14.0...0.14.1 [0.14.0]: https://github.com/EmbarkStudios/krates/compare/0.13.1...0.14.0 [0.13.1]: https://github.com/EmbarkStudios/krates/compare/0.13.0...0.13.1 [0.13.0]: https://github.com/EmbarkStudios/krates/compare/0.12.6...0.13.0 [0.12.6]: https://github.com/EmbarkStudios/krates/compare/0.12.5...0.12.6 [0.12.5]: https://github.com/EmbarkStudios/krates/compare/0.12.4...0.12.5 [0.12.4]: https://github.com/EmbarkStudios/krates/compare/0.12.3...0.12.4 [0.12.3]: https://github.com/EmbarkStudios/krates/compare/0.12.2...0.12.3 [0.12.2]: https://github.com/EmbarkStudios/krates/compare/0.12.1...0.12.2 [0.12.1]: https://github.com/EmbarkStudios/krates/compare/0.12.0...0.12.1 [0.12.0]: https://github.com/EmbarkStudios/krates/compare/0.11.0...0.12.0 [0.11.0]: https://github.com/EmbarkStudios/krates/compare/0.10.1...0.11.0 [0.10.1]: https://github.com/EmbarkStudios/krates/compare/0.10.0...0.10.1 [0.10.0]: https://github.com/EmbarkStudios/krates/compare/0.9.0...0.10.0 [0.9.0]: https://github.com/EmbarkStudios/krates/compare/0.8.1...0.9.0 [0.8.1]: https://github.com/EmbarkStudios/krates/compare/0.8.0...0.8.1 [0.8.0]: https://github.com/EmbarkStudios/krates/compare/0.7.0...0.8.0 [0.7.0]: https://github.com/EmbarkStudios/krates/compare/0.6.0...0.7.0 [0.6.0]: https://github.com/EmbarkStudios/krates/compare/0.5.0...0.6.0 [0.5.0]: https://github.com/EmbarkStudios/krates/compare/0.4.2...0.5.0 [0.1.0]: https://github.com/EmbarkStudios/krates/releases/tag/0.1.0