Armadillo charts at lib.rs reveal unfashionable crates

I've added a new type of chart on reverse dependencies pages on lib.rs.

I've analyzed how dependencies change over time. Specifically, I note when crates change their dependencies, and stop using some of them. This lets me graph dependency additions and removals over time.

I've used this data to make a chart of "active" reverse dependencies over time. By active I mean crates when they use a given dependency, and haven't removed it (yet) in a later release. Additionally crates stop being counted as actively using a dependency when they appear to be abandoned themselves.

For crates that are dead, this gives an armadillo-shaped charts! Here's the gcc crate (red is when it's losing popularity):

and here's one for rustc-serialize:

and here's serde doing well:

The data also shows how failure is getting dethroned by thiserror/anyhow.

I'm very happy how clear this data turned out. Download numbers don't show these trends clearly, e.g. the obsolete gcc crate has still 130K downloads per month! The cc replacement has 6 times more downloads now, but 57 times more active reverse dependencies.

32 Likes

This is awesome!

This makes me think of playground's "we include the top 100 crates" threshold, which I think is currently by downloads. Maybe there's a way you could turn your new metrics here into a better top-100? (Something that would still change slowly, maybe "new reverse deps in the last year" or something, re-evaluated with every stable release?)

3 Likes

Here is my explanation for these armadillo charts:

Click to see

:grin:

5 Likes

Nice tool! What is your definition of "abandoned" in

Additionally crates stop being counted as actively using a dependency when they appear to be abandoned themselves.

?

For purpose of this chart currently crates stop being counted as active 1 year after their last release. I'll be tweaking it to use a better estimate, taking into account frequency of releases, whether it's >1.0, maybe maintenance badge status, etc.

1 Like

Wow, this is a really powerful tool. The graphs look like a much better measure of popularity than things like recent or total downloads.

Thank you.

3 Likes

I've tuned the algorithm a bit and applied it as a ranking factor now.

I wonder what happened to the gfx crate? Reverse dependencies of gfx // Lib.rs

For those curious, here's a list of crates most affected by the change:

See More
3 Likes

gfx got deprecated in favor of the lower-level gfx-hal by the gfx-rs team.

The spiritual successor of gfx is wgpu, but it's also worth noting that most users that'd tough out using gfx rather than something even higher level will probably also use gfx-hal.

7 Likes

Sweet, so the data was right after all!

1 Like

It would be interesting to see per version armadillo breakdown of revdeps.

Take for instance, https://lib.rs/crates/time/rev

Its pretty clear that 0.2 is quite unpopular vs 0.1 and people aren't motivated to migrate.

And crates.io really doesn't do it justice:

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.