cargo-udeps
cargo-semver-checks
cargo-udeps | cargo-semver-checks | |
---|---|---|
6 | 18 | |
1,538 | 921 | |
- | - | |
8.5 | 9.4 | |
16 days ago | 8 days ago | |
Rust | Rust | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cargo-udeps
-
cargo-udeps 0.1.33 release
I'm releasing cargo-udeps 0.1.33 today. The release marks a big change in the evolution of cargo-udeps, as the default backend is changed from using save-analysis to depinfo. This change was needed because the compiler is removing support for save-analysis. I will remove support for the save-analysis backend entirely in a couple of weeks, when the 1.64 release is made, and I'll update cargo-udeps to the new cargo release.
-
Why can rust-analyzer not detect unused dependencies?
rust-analyzer only provides a handful of diagnostics by itself, everything else is forwarded from cargo check (if checkOnSave is enabled). Neither tool currently emits a warning for unused dependencies, since it's pretty hard to do, but cargo-udeps can do it (though I'm not sure how reliable it is).
- Is there a tool to remove unused dependencies from a Cargo file?
-
Is the crate dependency becoming a problem?
Maybe an extension to cargo-udeps?
-
Corrode without bloat. Is detecting unnecessary features feasible?
cargo-udeps does a great job at letting us know which dependencies in our `Cargo.toml` are left unused. I am pretty impressed with it.
-
Reducing Rust Incremental Compilation Times on macOS by 70%
You can also turn off debuginfo completely. Personally, someone who does printf debugging, I mainly need it to debug segfaults, which are really rare in Rust. Sometimes the call stack of a panic is useful as well, but if I need debuginfo I can just re-enable it.
https://github.com/est31/cargo-udeps/commit/e550d93c7a6d756e...
cargo-semver-checks
-
Semver violations are common, better tooling is the answer
If you'd like to dig deeper, here are some links:
- cargo-semver-checks: https://github.com/obi1kenobi/cargo-semver-checks
- Trustfall query engine, which powers cargo-semver-checks: https://github.com/obi1kenobi/trustfall
- Trustfall playground, where you can query Rust library APIs in your browser -- for example, "which structs in `itertools` are importable by more than one path": https://play.predr.ag/rustdoc#?f=2&q=*3-Structs-importable-f...
- 10min conference talk on Trustfall: https://www.hytradboi.com/2022/how-to-query-almost-everythin...
I'm also giving a talk at P99 CONF in a few months about how Trustfall's new optimizations API made cargo-semver-checks over 2300x faster: https://twitter.com/PredragGruevski/status/16893002495908003...
- Cargo-semver-checks: Scan your Rust crate for semver violations
- cargo-semver-checks v0.20 and Trustfall v0.4 released — semver-check up to 2354x faster
-
err-as-you-go crate - anyhow meets thiserror
I strongly recommend that anybody creating new error types for public APIs read Study of std::io::Error by u/matklad to see some ways that error types can [need to] be future-proofed. I don't know if cargo-semver-checks can catch these issues when they're generated by a macro, but it'd be something people using this crate should carefully look into.
-
Re-exporting an enum with a type alias is breaking, but not major
cargo-semver-checks will implement a check for cases like this, and many other hazards like it. The check will be major, or minor, or just a hazard — whatever the overall community decides is right.
-
cargo-semver-checks v0.18.0: rustdoc caching, new lints & more
Full release notes: https://github.com/obi1kenobi/cargo-semver-checks/releases/tag/v0.18.0
-
cargo-semver-checks v0.17 is out: correct re-export handling
Release notes, TL;DR: Rust 1.65+ only, no more false positives due to moved+re-exported items.
- Semver implications of `#[non_exhaustive]` behavior on tuple/unit enum variants · Issue #304 · obi1kenobi/cargo-semver-checks
What are some alternatives?
cargo-machete - Remove unused Rust dependencies with this one weird trick!
octosql-plugin-postgres
bmrng - An async MPSC request-response channel for Tokio
go-sqlite3-stdlib - A standard library for mattn/go-sqlite3 including best-effort date parsing, url parsing, math/string functions, and stats aggregation functions
mold - Mold: A Modern Linker 🦠
octosql-plugin-random_data - OctoSQL plugin serving random data
scip - SCIP Code Intelligence Protocol
prql-query - Query and transform data with PRQL
arewefastyet - arewefastyet.rs - benchmarking the Rust compiler
argfile - Load additional CLI args from file
measureme - Support crate for rustc's self-profiling feature
rust-semverver - Automatic checking for semantic versioning in library crates