Module Counts

  • Include
  • Bower (JS)
  • Clojars (Clojure)
  • CPAN
  • CPAN (search)
  • CRAN (R)
  • Crates.io (Rust)
  • Drupal (php)
  • DUB (dlang)
  • GoDoc (Go)
  • Hackage (Haskell)
  • Hex.pm (Elixir/Erlang)
  • 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
Nov 26 Nov 27 Nov 28 Nov 29 Nov 30 Dec 1 Dec 2 Avg Growth
Bower (JS) 37/day
Clojars (Clojure) 17565 17571 17580 17584 17595 17602 17613 8/day
CPAN 34552 34556 34560 34565 34567 34575 34577 4/day
CPAN (search) 34552 34556 34560 34565 34567 34575 34578 4/day
CRAN (R) 9588 9591 9597 9605 9606 9614 9624 6/day
Crates.io (Rust) 6945 6956 6964 6979 6985 6995 7011 10/day
Drupal (php) 35971 35975 35983 35985 36000 36008 36023 8/day
DUB (dlang) 893 895 898 898 898 898 898 1/day
GoDoc (Go) 23/day
Hackage (Haskell) 10534 10541 10552 10556 10561 10564 10565 5/day
Hex.pm (Elixir/Erlang) 3186 3188 3190 3194 3202 3206 3209 5/day
LuaRocks (Lua) 1299 1299 1297 1297 1297 1304 1304 1/day
Maven Central (Java) 166169 166211 166307 166510 166651 166804 166953 124/day
MELPA (Emacs) 3420 3422 3423 3424 3424 3424 3424 1/day
npm (node.js) 359188 359489 359903 360468 361098 361659 362169 475/day
nuget (.NET) 67872 67904 67947 68067 68137 68174 68301 70/day
Packagist (PHP) 118653 118728 118844 118993 119141 119269 119394 121/day
Pear (PHP) 602 602 602 602 602 602 602 0/day
Perl 6 Ecosystem (perl 6) 743 744 744 744 744 745 745 0/day
PyPI 93524 93555 93636 93803 93863 93935 94000 74/day
Rubygems.org 125932 125958 125989 126028 126071 126120 126173 39/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).

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

I used to support downloading the full database in CSV format, but the database has outgrown that (even with offline CSV generation).