3 ms·
For javascript packages, npm lists which other packages which depend on any given package, and how many times a package was downloaded in the last week. That gi
by josephg 5y ago
For javascript packages, npm lists which other packages which depend on any given package, and how many times a package was downloaded in the last week. That gives you a rough sense of usage, but it can also be super mysterious.
As an example, here's a package I wrote which I haven't touched in 3 years: https://www.npmjs.com/package/jumprope https://www.npmjs.com/package/jumprope
There are no projects on npm which depend on this, and yet it gets downloaded about 3000 times per week. Who's using it? I have no idea. Are they running into any problems? I suppose not, I mean, there aren't any issues on github. Its kinda spooky.
- ratww 5y agoYou can possibly find some users in Github: https://github.com/search?q=jumprope+filename%3Apackage.json+language%3AJSON+language%3AJSON&type=Code&ref=advsearch&l=JSON&l=JSON https://github.com/search?q=jumprope+filename%3Apackage.json...
- josephg 5y agoOh good idea! It looks like Github also tracks a project's dependancy tree explicitly, though those 3000 downloads per week remain a mystery: https://github.com/josephg/jumprope/network/dependents https://github.com/josephg/jumprope/network/dependents
- ianwalter 5y agoI've heard that the vast majority of those downloads are from CI systems. It would be cool if GitHub could draw anonymous metrics from GitHub Actions and help with this mystery.
- ianwalter 5y agoI really wish GitHub would invest more in the dependency graph, like allow you to sort by stars at least: https://github.com/josephg/jumprope/network/dependents https://github.com/josephg/jumprope/network/dependents
- rightbyte 5y agoRope took 5610 ms. 0.001122 ms per iteration, 891k iterations per second JS toString took 3463 ms. 0.003463 ms per iteration, 288k iterations per second I guess you have a typo there in total time?
- usrusr 5y agoThanks, just like I expected. Hopefully every at least remotely modern dependency/package manager has some sort of citeseer equivalent in its ecosystem. And your last paragraph nicely illustrates the blindness we get from closed projects/products not publishing their dependency metadata. I suppose that for client side js a tiny subset of usage stats could be generated by CDN distribution, but repackaging is a thing (and for good reason, in many cases)