Visualizing Crates.io

Rust's packages are called "crates". The central registry — crates.io stores its entire history as a Git repository. This visualization uses the Git repository to show Rust's growing ecosystem.

There are more than 21,000 crates

In December 2018, the number of crates on the registry exceeded 21,000. Due to the growth throught the year, the Rust team had to squash all commits on the repository as one commit in September.

It had been planned from the beginning. Cargo, Rust's package manager was designed and prepared for this squash commit. So, most of developers didn't notice the moment.

But, a lot of them have less than 6 releases

While there are a lot of crates out there, many crates have less than 6 releases. The ecosystem is still faily young. This histogram shows the distribution of the number of releases.

On the other hand, some crates have more than 100 releases. The below chart shows these "aged" crates. Please note that crates with "rustc-ap-" prefix are automatically published by alexcrichton/rustc-auto-publish.

Zero Dependencies is Good Dependencies?

This histgram shows the number of dependencies on each section. Normal dependencies are dependencies used by crates themselves. Development dependencies are dependencies used by crates' tests and benchmarks. Build dependencies are dependencies used by creates' build scripts.

A lot of crates have literally zero dependencies. But many crates are also young. The heatmap shows the relationship between releases vs dependencies.

Popular Crates: serde is used by over 3,000 crates

The below charts show the popularity of crates, based on the number of their dependents. Since they are based on dependent crates, applications like ripgrep is not there. Instead serde is appeared in all three rankings.

Created by Kazuyoshi Kato | 8-p.info
Made in Seattle, Washington