Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add cargo-modules #34

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

regexident
Copy link

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

(Disclaimer: I am the author.)

@djc
Copy link
Collaborator

djc commented Nov 11, 2022

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
Copy link
Author

regexident commented Nov 11, 2022

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
Copy link

jimvdl commented Nov 13, 2022

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
Copy link
Author

regexident commented Nov 13, 2022

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."1@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 […]"2@kvark (ex-Mozilla/WebRender)

Footnotes

  1. https://www.reddit.com/r/rust/comments/4ptfw5/comment/d53jfl7/

  2. https://github.com/regexident/cargo-modules/issues/51

@djc
Copy link
Collaborator

djc commented Nov 14, 2022

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 regexident/cargo-modules#102 being reported but not having any route to being fixed make me more iffy about the value proposition.

@jimvdl
Copy link

jimvdl commented Nov 14, 2022

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.

@regexident
Copy link
Author

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.

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".

For what it's worth the Github stars of the project have more than doubled (408 -> 875) since this PR was opened:

star-history-2024710

I also feel that issues like regexident/cargo-modules#102 being reported but not having any route to being fixed make me more iffy about the value proposition.

I'm happy to report that this has long been resolved at this point. 🙂

@djc
Copy link
Collaborator

djc commented Jul 10, 2024

At 18k recent downloads (cargo-show-asm, which is currently included, also has 18k), I think this might now make sense.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants