The high-impact (popular) packages of npm

Overview

npm-high-impact

Build Coverage Downloads Size

The high-impact (popular) packages of npm.

Contents

What is this?

This package exposes the names of popular packages on the public npm registry. The definition of the term popular here is the same as what npm itself calls high-impact. They classify packages as having a high impact on the ecosystem when a package meets one or more of the following conditions:

  • download count of 1 000 000 or more per week
  • depended on by 500 or more other packages

When should I use this?

Please use this for fun experiments when researching the npm registry.

Install

This package is ESM only. In Node.js (version 14.14+, 16.0+), install with npm:

npm install npm-high-impact

In Deno with esm.sh:

import {npmHighImpact} from 'https://esm.sh/npm-high-impact@1'

In browsers with esm.sh:

<script type="module">
  import {npmHighImpact} from 'https://esm.sh/npm-high-impact@1?bundle'
</script>

Use

import {npmHighImpact} from 'npm-high-impact'

console.log(npmHighImpact.length)
console.log(npmHighImpact)
6039
[
  'supports-color',
  'semver',
  'ansi-styles',
  'chalk',
  'debug',
  'ms',
  'has-flag',
  'source-map',
  'color-name',
  // …
]

API

This package exports the identifiers npmHighImpact, npmTopDependents, and npmTopDownloads. There is no default export.

npmHighImpact

List of top package names (Array<string>). Sorted by most downloaded first. Includes (unique) packages from npmTopDependents and npmTopDownloads.

npmTopDependents

List of package names that are depended on a lot (Array<string>). Sorted by most dependents first.

npmTopDownloads

List of package names that are downloaded a lot (Array<string>). Sorted by most downloaded first.

Data

This repo includes several scripts to crawl different services.

Top dependents

script/crawl-top-dependents.js looks for packages that are depended on by 500 or more other packages. The script takes like 30 minutes to run and currently gets about 3 000 packages.

It crawls the libraries.io project search API, whose results can also be browsed on the web. Crawling stops paginating when a package is seen that is depended on by less than 500 other packages.

You need an API key for libraries.io, see their API docs for more info.

All packages

script/crawl-packages.js follows an append-only database to find all the changes to things in the npm registry. We filter duplicates out, but still end up with ±2.5m “things”, which aren’t all proper packages. Later scripts will have to deal with them being missing. The script takes like xx hours to run.

It crawls replicate.npmjs.com.

Top downloads

script/crawl-top-downloads.js looks for download counts of all ±2.5m packages on the registry. Later scripts can filter the complete list to get the top packages. The script takes like 15 hours to run. About 6 hours is spent on ±1.9m unscoped packages. The other 9 on the ±600k scoped packages (yes, sad). After filtering, the interesting data would result in about 6k packages.

It crawls the npm package download count API. Unscoped packages are crawled using the batch API to get 128 per request. Scoped packages are crawled with 20 HTTP requests at a time, as there is no batch API, and higher rates are limited by npm.

Types

This package is fully typed with TypeScript. It exports no additional types.

Compatibility

This package is at least compatible with all maintained versions of Node.js. As of now, that is Node.js 14.14+, 16.0+, and 18.0+. It also works in Deno and modern browsers.

Contribute

Yes please! See How to Contribute to Open Source.

Security

This package is safe.

License

MIT © Titus Wormer

You might also like...

Semantic Release plugin to create and publish NuGet packages.

semantic-release-nuget semantic-release plugin to create and publish a NuGet package. Step Description verifyConditions Verify the presence of the NUG

Jan 2, 2023

Solidex is a list of SolidJS ecosystem resources and packages.

Solidex is a list of SolidJS ecosystem resources and packages.

Solidex The following is a list of articles, packages and other resources that focus on the SolidJS ecosystem. Solidex is a platform for listing and m

Dec 18, 2022

Unified-myst is a monorepo containing packages for using MyST

Unified-myst is a monorepo containing packages for using MyST

unified-myst (IN-DEVELOPMENT) unified-myst is a monorepo containing packages for using MyST (Markedly Structured Text), within the unified ecosystem.

Apr 14, 2022

A little CLI for making TypeScript packages, cleanly and effortlessly.

TSEX A little CLI for making TypeScript packages, cleanly and effortlessly. Install npm install -g tsex Usage Usage: tsex [options] [command] A littl

Nov 15, 2022

🪵 Aggressively find a packages changelog (or releases) between versions.

🪵 changelogd Aggressively find a packages changelog (or releases) between versions. Status: Early Access Please report any issues 🐛 Made possible by

May 10, 2022

Modren is a modern store for Linux. It includes support for snaps, flatpaks from Flathub, APT packages and DEBs.

 Modren is a modern store for Linux. It includes support for snaps, flatpaks from Flathub, APT packages and DEBs.

v1.0.0 Made with ❤️ for 🐧 Modren is a modern store for Linux. It includes support for snaps, flatpaks from Flathub, APT packages and DEBs. Download ·

Nov 18, 2022

Recursively publish ESM packages as CommonJS!

Commonify.js For us who are still relying on CommonJS, or using Electron which does not support ESM. 🆕 See also build-electron I made this tool that

Dec 29, 2022

A monorepo for comma.ai web interfaces and packages

comma webapps This mono-repository contains the web applications and packages for the web UIs of comma.ai Contributing Just pick something and work on

Sep 27, 2022

Open source packages to work with fogbender.com

Fogbender Open-Source Software Open source packages to work with https://fogbender.com What is Fogbender? Fogbender is a helpdesk product for supporti

Jan 8, 2023
Releases(1.1.0)
Owner
Titus
🐧 Making it easier for developers to develop · core team @unifiedjs · full-time OSS · syntax trees, markdown, markup, natural language 🐧
Titus
npm i uuid, npm i nodemon, npm i commander

goit-nodejs-hw-01 Получаем и выводим весь список контактов в виде таблицы (console.table) node index.js --action list Получаем контакт по id node inde

Oksana Banshchykova 3 Jul 5, 2022
Demonstration of how you build full-stack, typed, NPM packages, the right way

NPM Packages - The Right way This repository aims to demonstrate how to build NPM packages the right way. my-package should import the shared code, bu

VulcanJS 61 Nov 27, 2022
Detect npm packages by author name in your package-lock.json or yarn.lock.

detect-package-by-author Detect npm packages by author name in your package-lock.json or yarn.lock. Install Install with npm: # Not Yet Publish # npm

azu 2 Jan 11, 2022
Package fetcher is a bot messenger which gather npm packages by uploading either a json file (package.json) or a picture representing package.json. To continue...

package-fetcher Ce projet contient un boilerplate pour un bot messenger et l'executable Windows ngrok qui va permettre de créer un tunnel https pour c

AILI Fida Aliotti Christino 2 Mar 29, 2022
Get packages from a monorepo (pnpm, yarn, npm, lerna)

?? You can help the author become a full-time open-source maintainer by sponsoring him on GitHub. @egoist/get-packages Get packages from a monorepo (p

EGOIST 45 Jun 1, 2022
🔑 Keagate is an open-source, high-performance alternative to popular cryptocurrency payment gateways such as Coinbase Commerce, CoinGate, BitPay, NOWPayments, CoinRemitter, CoinsPaid and more.

⛩️ Keagate – A High-Performance Cryptocurrency Payment Gateway ?? This project is actively in development ?? Table of Contents About the Project Purpo

null 76 Jan 3, 2023
🐧 [WIP] Genshin Impact Chat Bot

Genshin Bot Config $ cp config/bot.sample.ts config/bot.ts Development $ yarn $ yarn dev $ open http://localhost:7001/ Npm Scripts Use yarn lint to ch

CanisMinor 2 Dec 20, 2021
A unofficial Node.js library for HoYoWiki API, can get the details of Genshin Impact items!

HoYoWiki API (Node.js Library) English | 繁體中文 | 简体中文 A unofficial Node.js library for HoYoWiki API, can get the details of Genshin Impact items! Repor

張文相 Wenxiang Zhang (旋風之音 GoneTone) 5 Jul 17, 2022
An users NodeJS API without packages libs or frameworks!

NodeJS Users API - Without Frameworks And Packages ?? Table of Contents About Getting Started Usage Built Using Authors ?? About Purpose of this proje

Nathan Cotrim Lemos 31 Feb 7, 2022
A set of javascript packages that generates fake data for you.

Faker A set of javascript packages that generates fake data for you. Install $ npm install --save @fakerjs/faker Usage import faker from '@fakerjs/fa

The New Faker for JavaScript 33 Apr 18, 2022