| Jan 12 | Jan 13 | Jan 14 | Jan 15 | Jan 16 | Jan 17 | Jan 18 | Avg Growth | |
|---|---|---|---|---|---|---|---|---|
| Bower (JS) | 37/day | |||||||
| Clojars (Clojure) | 17918 | 17928 | 17931 | 17936 | 17939 | 17946 | 17958 | 7/day |
| CPAN | 34789 | 34799 | 34808 | 34814 | 34816 | 34822 | 34829 | 7/day |
| CPAN (search) | 34790 | 34800 | 34808 | 34813 | 34817 | 34822 | 34828 | 6/day |
| CRAN (R) | 9887 | 9896 | 9908 | 9915 | 9922 | 9926 | 9937 | 8/day |
| Crates.io (Rust) | 7548 | 7556 | 7573 | 7599 | 7610 | 7619 | 7632 | 14/day |
| Drupal (php) | 36348 | 36358 | 36365 | 36366 | 36369 | 36384 | 36404 | 9/day |
| DUB (dlang) | 922 | 924 | 924 | 924 | 925 | 925 | 925 | 0/day |
| GoDoc (Go) | 23/day | |||||||
| Hackage (Haskell) | 10747 | 10755 | 10759 | 10764 | 10778 | 10781 | 10785 | 6/day |
| Hex.pm (Elixir/Erlang) | 3430 | 3438 | 3445 | 3448 | 3455 | 3459 | 3466 | 6/day |
| LuaRocks (Lua) | 1336 | 1342 | 1344 | 1346 | 1346 | 1346 | 1346 | 2/day |
| Maven Central (Java) | 173008 | 173124 | 173196 | 173183 | 173241 | 173374 | 173479 | 78/day |
| MELPA (Emacs) | 3464 | 3466 | 3467 | 3467 | 3468 | 3470 | 3470 | 1/day |
| npm (node.js) | 379216 | 379755 | 380156 | 380472 | 380872 | 381388 | 381958 | 457/day |
| nuget (.NET) | 70743 | 70797 | 70844 | 70904 | 70929 | 71032 | 71151 | 68/day |
| Packagist (PHP) | 123767 | 123914 | 124015 | 124084 | 124201 | 124344 | 124496 | 121/day |
| Pear (PHP) | 602 | 602 | 602 | 602 | 602 | 602 | 602 | 0/day |
| Perl 6 Ecosystem (perl 6) | 766 | 766 | 766 | 769 | 770 | 772 | 771 | 1/day |
| PyPI | 96461 | 96529 | 96598 | 96642 | 96687 | 96768 | 96840 | 63/day |
| Rubygems.org | 127766 | 127800 | 127831 | 127853 | 127894 | 127946 | 127984 | 36/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 [email protected].
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).