nicoburns / blessed-rs

A community guide to the Rust ecosystem
https://blessed.rs
1.17k stars 66 forks source link

Add cargo-modules #34

Open regexident opened 1 year ago

regexident commented 1 year ago

Adds cargo-module a cargo plugin for visualizing and analyzing a crate's code structure.

(Disclaimer: I am the author.)

djc commented 1 year ago

While this has been around for a while, it doesn't seem to have gained substantial popularity -- I don't think it makes sense for this to be listed on blessed.rs at this point.

regexident commented 1 year ago

The same could be said for cargo-license then, which has also been around since 2016 and is currently at 296 stars (vs. 408 for cargo-modules).

While comparing the download counts on crates.io (of which cargo-license has significantly more, admittedly) is kind of like comparing apples to oranges, since cargo-license is frequently used on CI and thus gets re-downloaded over and over, while cargo-modules is installed locally once and then only updated sporadically.

jimvdl commented 1 year ago

comparing the download counts on crates.io is kind of like comparing apples to oranges

I agree, I get that this is supposed to be an opinionated list but solely basing admissions off downloads seems shortsighted.

regexident commented 1 year ago

There's also the aspect of cargo-modules —to my knowledge— being the only fully-featured whole-project visualization tool available out there for Rust. It currently pretty much fills an entire and important Rust tooling niche of its own. And on top of that it's being actively developed and regularly maintained.


Apart from that it has proven itself to be a very useful tool for both beginners, who are just starting out with the language and haven't yet fully grasped the module system:

"I know this thread is old, but I just wanted to say that this is my new favorite Rust project. I want it to be distributed with Cargo like, yesterday.

I was helping someone in #rust-beginners, and it was extremely useful. Wow."^beginner — @steveklabnik (ex-Rust Core Team)

As well as for expert rustaceans working on complex projects wanting to visualize the structure and inter-dependencies between modules in a project:

"This is one great project, and I'm looking forward to use to for good. Just trying it on WebRender […]"^expert — @kvark (ex-Mozilla/WebRender)

djc commented 1 year ago

Personally I think being actively developed and regularly maintained is necessary but not sufficient. I guess it couldn't hurt to add it, but I'm not convinced that this passes the threshold that I'd use for "blessed". I also feel that issues like https://github.com/regexident/cargo-modules/issues/102 being reported but not having any route to being fixed make me more iffy about the value proposition.

jimvdl commented 1 year ago

but I'm not convinced that this passes the threshold that I'd use for "blessed".

What is that threshold exactly? The acceptance criteria are not very clear to me, at least I can't find a clear set of requirements a crate has to adhere to in order for it to be added. I might be missing something here, but defining acceptance criteria seems useful for projects like these.