mapbox

mapbox/node-pre-gyp

JavaScript BSD-3-Clause Dev Tools high-issue-count

Node.js tool for easy binary deployment of C++ addons

1.2k stars
272 forks
active
GitHub +1 / week

1.2k

Stars

272

Forks

198

Open issues

30

Contributors

AI Analysis

node-pre-gyp is a Node.js tool that simplifies publishing and installing C++ native addons by providing cross-platform binary deployment, standing between npm and node-gyp. It serves developers building native modules who need reliable binary distribution without compilation on end-user machines. It is specifically for native addon authors and package maintainers, not for general Node.js application developers.

Dev Tools Developer Tool Discovery value: 3/10
Documentation 8/10
Activity 8/10
Community 7/10
Code quality 6/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 7/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

native-addons binary-deployment node-gyp build-tooling c++-bindings
Actively maintained Well documented Niche/specialized use case Production ready
Deep Analysis · Based on README and public signals
3d ago

Mapbox's binary deployment tool for Node.js C++ addons, mature and narrowly focused on the build-and-distribute problem.

node-pre-gyp sits between npm and node-gyp to solve a specific, narrow problem: making it easy to publish and install pre-compiled C++ binaries for Node.js native modules across platforms. It abstracts away cross-platform binary packaging and S3 hosting coordination. Used by projects that need to ship compiled code without forcing end-users to compile locally. Actively maintained by Mapbox, but adoption is niche and stable rather than growing—it fills a specific technical need for addon authors rather than being a category leader.

Origin

Created November 2013 by Mapbox to address Ghost Project's binary deployment pain. Deprecated the unscoped version in February 2021 and moved to @mapbox-scoped package. Modeled after node-gyp's design but layers binary management on top. Sponsorship by Mapbox has ensured continuous maintenance over 12+ years.

Growth

Project gained 1 star in the last 7 days and sits at 1,154 stars total. Growth appears flat and mature—not declining, but no longer accumulating new users rapidly. The pivot to @mapbox-scoped package in 2021 consolidated adoption around the maintained version. Last push July 6, 2026 (2 days before evaluation date) indicates active, steady maintenance rather than growth or abandonment. Adoption appears stable among addon authors who already use it; not evidence of expanding market share.

In production

README names node-addon-examples as a hello-world reference and directs users to a wiki listing 'real world examples,' but specific production users are not enumerated in the README excerpt provided. The project describes itself as widely used but concrete adoption evidence is not documented in the visible README. Adoption not verified at scale in this analysis.

Code analysis
Architecture

Likely operates as a wrapper and orchestration layer: intercepts npm install lifecycle hooks, fetches or builds binaries conditionally, manages cross-platform paths. Based on README, it abstracts S3 hosting, AWS SDK integration, and fallback-to-build logic. Appears to support Node.js, Electron, and node-webkit runtimes. Architecture seems stable and command-driven rather than API-first.

Tests

README mentions CI workflows (ci.yml, s3-bucket.yml) but does not document test coverage metrics or strategy. Presence of S3-bucket integration tests suggests real-world deployment testing. Specific unit/coverage percentages not disclosed in README.

Maintenance

Last push July 6, 2026 (within 48 hours of evaluation). CI workflows are active. Project has clear versioning (v1 requires Node.js >=8.x, v2 unreleased with Node.js >=18.x). No evidence of neglect; maintenance appears steady and tied to Node.js release schedule. Not rapid iteration, but responsive to platform evolution.

Honest verdict

ADOPT IF: you are authoring a Node.js C++ addon that must ship pre-compiled binaries across Windows/macOS/Linux and you want an integrated publish/install workflow with S3 hosting. The tool is mature, actively maintained, and solves this specific problem end-to-end. AVOID IF: you are using only high-level Node.js code or WebAssembly, or if you prefer community-maintained prebuild alternatives. Also avoid if you require Node.js <8.x or cannot use S3 for binary hosting. MONITOR IF: you depend on this for production addon distribution—check quarterly for maintenance status, but no urgent action needed given active July 2026 push and clear versioning strategy.

Independent dimensions

Mainstream potential

3/10

Technical importance

7/10

Adoption evidence

4/10

Risks
  • Adoption is narrow and specialist. If you need binary addons, this tool is valuable; if you don't, it is irrelevant. No indication of expanding addressable market.
  • S3 dependency for publish workflow may conflict with organizations avoiding AWS or requiring alternative object storage. No clear alternative backend documented in README excerpt.
  • Node.js version coupling (v1 requires >=8.x, v2 unreleased for >=18.x) means upgrades tied to Node.js LTS transitions; potential friction during major version jumps.
  • Wiki-based documentation for 'real world examples' is less visible than in-repo docs. Discoverability of production usage may limit newcomer confidence.
  • Reliance on Mapbox sponsorship for maintenance; no indication of independent stewardship or community contribution model. Project continuity dependent on Mapbox's continued investment.
Prediction

Will remain a stable, niche tool for C++ addon authors. Unlikely to grow significantly in absolute adoption (the population of addon authors is fixed and not expanding). However, will continue to receive maintenance patches as Node.js and npm evolve, ensuring it remains functional for its intended use case.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

JavaScript
92.5%
Python
3.3%
C++
2.8%
Shell
1.1%
HTML
0.3%
Batchfile
0%

Information

Language
JavaScript
License
BSD-3-Clause
Last updated
4d ago
Created
154mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Similar repos

nodejs

nodejs/node-gyp

node-gyp is a cross-platform command-line build tool for compiling native C/C++...

10.7k Python Dev Tools
nodejs

nodejs/node-addon-examples

A curated collection of Node.js C++ addon examples demonstrating best practices...

2.6k C++ Dev Tools
nodejs

nodejs/node-addon-api

node-addon-api is a header-only C++ wrapper library that simplifies using...

2.4k C++ Dev Tools
nodejs

nodejs/nan

NAN (Native Abstractions for Node.js) is a header-only C++ library that...

3.4k C++ Dev Tools
nodesource

nodesource/distributions

NodeSource Distributions provides curated Node.js binary packages for Linux...

13.8k Shell DevOps
vs. alternatives
node-gyp

Direct predecessor. node-gyp compiles C++ locally; node-pre-gyp adds pre-built binary distribution. node-gyp is broader (10,660 stars), node-pre-gyp is narrower and purpose-built for binary deployment workflow.

node-addon-api (N-API)

Solves native module stability problem via standardized C++ interface; node-pre-gyp solves distribution problem. Complementary, not competing—addons using N-API may still use node-pre-gyp for binary delivery.

nan (Native Abstractions)

Legacy abstraction layer for Node.js C++ bindings; node-pre-gyp addresses a different layer (distribution, not API compatibility). Both often used together in older projects.

prebuild-install

Community alternative focused specifically on pre-built binary installation. Lighter-weight, fewer features for publishing. node-pre-gyp includes publish/packaging tooling; prebuild-install primarily installs.

node-ffi / WASM alternatives

Solve the 'avoid native compilation' problem entirely via FFI or WebAssembly. Different philosophy: these reduce need for C++ addons altogether rather than improving distribution of existing ones.