On this page

About this documentation

History

Welcome to the official API reference documentation for Node.js!

Node.js is a JavaScript runtime built on the V8 JavaScript engine.

Report errors in this documentation in the issue tracker. See the contributing guide for directions on how to submit pull requests.

Throughout the documentation are indications of a section's stability. Some APIs are so proven and so relied upon that they are unlikely to ever change at all. Others are brand new and experimental, or known to be hazardous.

The stability indexes are as follows:

Stability: 0Deprecated. The feature may emit warnings. Backward compatibility is not guaranteed.
Stability: 1Experimental. The feature is not subject to semantic versioning rules. Non-backward compatible changes or removal may occur in any future release. Use of the feature is not recommended in production environments.
Stability: 2Stable. Compatibility with the npm ecosystem is a high priority.
Stability: 3Legacy. Although this feature is unlikely to be removed and is still covered by semantic versioning guarantees, it is no longer actively maintained, and other alternatives are available.

Features are marked as legacy rather than being deprecated if their use does no harm, and they are widely relied upon within the npm ecosystem. Bugs found in legacy features are unlikely to be fixed.

Use caution when making use of Experimental features, particularly when authoring libraries. Users may not be aware that experimental features are being used. Bugs or behavior changes may surprise users when Experimental API modifications occur. To avoid surprises, use of an Experimental feature may need a command-line flag. Experimental features may also emit a warning.

APIStability
Assert2 Stable
Async hooks1 Experimental
Asynchronous context tracking2 Stable
Buffer2 Stable
Child process2 Stable
Cluster2 Stable
Console2 Stable
Crypto2 Stable
Debugger2 Stable
Diagnostic report2 Stable
Diagnostics Channel2 Stable
DNS2 Stable
Domain0 Deprecated
Events2 Stable
File system2 Stable
Global objects2 Stable
HTTP2 Stable
HTTP/22 Stable
HTTPS2 Stable
Inspector2 Stable
Modules: CommonJS modules2 Stable
Modules: ECMAScript modules2 Stable
Modules: TypeScript2 Stable
Net2 Stable
Node-API2 Stable
OS2 Stable
Path2 Stable
Performance measurement APIs2 Stable
Punycode0 Deprecated
Query string2 Stable
QUIC1 Early development
Readline2 Stable
REPL2 Stable
Single executable applications1 Active development
SQLite1 Release candidate.
Stream2 Stable
String decoder2 Stable
Test runner2 Stable
Timers2 Stable
TLS (SSL)2 Stable
Trace events1 Experimental
TTY2 Stable
UDP/datagram sockets2 Stable
URL2 Stable
Util2 Stable
VM (executing JavaScript)2 Stable
Web Crypto API2 Stable
Web Streams API2 Stable
WebAssembly System Interface (WASI)1 Experimental
Worker threads2 Stable
Zlib2 Stable

JSON output

History

Every .html document has a corresponding .json document. This is for IDEs and other utilities that consume the documentation.

Node.js functions which wrap a system call will document that. The docs link to the corresponding man pages which describe how the system call works.

Most Unix system calls have Windows analogues. Still, behavior differences may be unavoidable.