Module Counts

  • Include
  • Clojars (Clojure)
  • CPAN
  • CPAN (search)
  • CRAN (R)
  • Crates.io (Rust)
  • Drupal (php)
  • DUB (dlang)
  • Gopm (go)
  • Hackage (Haskell)
  • Hex.pm (Elixir/Erlang)
  • Julia
  • LuaRocks (Lua)
  • Maven Central (Java)
  • MELPA (Emacs)
  • npm (node.js)
  • nuget (.NET)
  • Packagist (PHP)
  • Pear (PHP)
  • Perl 6 Ecosystem (perl 6)
  • PyPI
  • Rubygems.org
  • time period
  • all time
  • last year
  • last 90 days
  • last 30 days
  • last 7 days
Apr 20 Apr 21 Apr 22 Apr 23 Apr 24 Apr 25 Apr 26 Avg Growth
Clojars (Clojure) 18691 18694 18706 18706 18720 18732 18735 7/day
CPAN 35133 35138 35140 35142 35147 35152 35158 4/day
CPAN (search) 35133 35138 35140 35142 35147 35152 35158 4/day
CRAN (R) 10478 10485 10487 10489 10500 10470 10480 0/day
Crates.io (Rust) 8919 8941 8952 8967 8974 8998 9015 16/day
Drupal (php) 37224 37234 37245 37252 37257 37268 37286 10/day
DUB (dlang) 994 995 995 997 998 999 1000 1/day
Gopm (go) 18948 18949 18952 18953 18963 18964 18966 3/day
Hackage (Haskell) 11210 11213 11217 11220 11226 11237 11243 5/day
Hex.pm (Elixir/Erlang) 4017 4022 4028 4034 4039 4045 4058 7/day
Julia 1344 1344 1348 1347 1347 1351 1352 1/day
LuaRocks (Lua) 1426 1426 1428 1428 1428 1428 1430 1/day
Maven Central (Java) 183998 184100 184211 184267 184374 184558 184682 114/day
MELPA (Emacs) 3607 3607 3608 3609 3610 3612 3612 1/day
npm (node.js) 436881 438794 440564 441582 442183 443024 443826 1157/day
nuget (.NET) 77759 77837 77926 77968 78022 78080 78178 70/day
Packagist (PHP) 136643 136774 136875 137006 137121 137241 137388 124/day
Pear (PHP) 602 602 602 602 602 602 602 0/day
Perl 6 Ecosystem (perl 6) 810 810 810 811 814 812 813 0/day
PyPI 106260 106353 106427 106490 106590 106636 106726 78/day
Rubygems.org 131303 131348 131377 131404 131431 131471 131515 35/day

Data is collected by scraping the relevant websites once a day via a cron job and then stored in a Postgresql database for later retrieval. Growth rates are calculated by averaging data over the last week. I'm gathering counts of separate modules, so multiple versions of the same module/package/gem only count once (foo-1.2, foo-1.3 and bar-1.0 would count as 2 total).

(Apr 2, 2017) Added Julia to list. Thanks to Bargava Subramanian for pointing it out. Return CSV download feature.

(Mar 17, 2017) Bower and GoDoc haven't been pulling numbers for a long time, and it doesn't seem to just be a matter of the number moving somewhere new. I'm removing them both, and adding Gopm.io, which seems to be more in-line with most languages' ideas about what a package manager is. Big thanks to Jesse Aldridge for pointing me to it.

(May 30, 2016) Much thanks to Hiroki Noda for adding DUB (dlang). Fixed Hex.pm sampling, and removed link to CSV download until I can re-engineer it.

(Apr 8, 2016) Updates to Rubygems.org and Npmjs.org broke both of those samplers.

I'd like to add more repositories. If you have suggestions, please send them to erik@debill.org.

CPAN and CPAN (search) used to be two conflicting sources for data about how many modules are in CPAN. During spring of 2011 CPAN got a site refresh and the numbers came into line with each other. It looks funny on the graph, but it's an interesting bit of history.

GoDoc is weird. It's not a true package repository in the same sense as all the others, but as far as I can tell it's the closest GoLang has. Be aware that it pretty drastically overcounts the number of packages. Don't use the raw numbers to compare with other languages. You can still watch the line to see changes in velocity, though.

If you'd like to check out the data in more detail, you are welcome to download it in a CSV file.