nodejs/node
Node.js
Node.js is an open-source, cross-platform JavaScript runtime built on top of Google's V8 engine, libuv, and a collection of native libraries vendored under deps/. The repository at nodejs/node produces the node binary, the npm/corepack shipped with it, and the public API surface documented at https://nodejs.org/api/.
The project is governed by an open governance model under the OpenJS Foundation, with a Technical Steering Committee defined in GOVERNANCE.md and dozens of working groups whose ownership is encoded in .github/CODEOWNERS.
What is in this repository
The repository contains every layer of the runtime:
| Layer | Where | Language |
|---|---|---|
| Public JS API surface | lib/*.js |
JavaScript |
| JS internals | lib/internal/** |
JavaScript |
| C++ runtime | src/** |
C++ (with -inl.h inline headers) |
| Native bindings | src/node_*.cc, src/*_wrap.cc |
C++ ↔ V8 |
| Vendored dependencies | deps/** |
C, C++, Rust, JS |
| Build system | *.gyp*, configure.py |
Python + GYP |
| Tests | test/** |
JavaScript + C++ (cctest) |
| Documentation | doc/api/** |
Markdown (custom doctool) |
| Tooling | tools/** |
Python, JS, Shell |
How the wiki is organized
- Overview › Architecture — how the V8 engine, libuv event loop, C++ host and JavaScript modules fit together.
- Overview › Getting started — how to clone, build, and run Node.js from source.
- Overview › Glossary — the terms used throughout the codebase, mirrored from
glossary.mdand expanded with internal vocabulary. - By the numbers — quantitative snapshot of the codebase.
- Lore — major eras of the project, from the 2009 origin to the current LTS cadence.
- Fun facts — the things you only learn after
git blame-ing for a while. - How to contribute — the workflow Collaborators actually follow.
- Systems — internal subsystems: bootstrap, modules, streams, errors, fs, crypto, http(s), workers, and so on.
- Primitives —
Environment,Realm,BaseObject,AsyncWrap,BindingData, snapshots — the building blocks that every subsystem uses. - Vendored deps and build — V8, libuv, OpenSSL/ncrypto, llhttp, ngtcp2, undici, ada, simdjson, ICU, npm, etc.
- API surface — orientation in
doc/api/and how generated docs map to source. - Reference — configuration, exit codes, build flags, and dependency catalog.
- Maintainers — the CODEOWNERS team-to-subsystem map.
Reading order suggestions
- New contributor: start with Getting started, then How to contribute and Patterns and conventions.
- Embedder / Node-API user: read Architecture, primitives › environment-and-realm, and systems › node-api.
- Subsystem maintainer: jump to the relevant page under systems/, then Patterns and conventions for the C++/JS conventions.
Where the binary's entry point lives
The C++ entry point is src/node_main.cc → node::Start() in src/node.cc. From there control flows through node::InitializeOncePerProcess, NodeMainInstance::Run, into Realm::BootstrapRealm(), which compiles and runs lib/internal/bootstrap/realm.js and then lib/internal/bootstrap/node.js. After bootstrap a "main script" is selected from lib/internal/main/ (e.g. run_main_module.js, repl.js, eval_string.js, worker_thread.js) and executed. The detailed flow is in Architecture and systems › bootstrap-and-startup.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.