xref: /third_party/node/doc/api/documentation.md (revision 1cb0ef41)
1# About this documentation
2
3<!--introduced_in=v0.10.0-->
4
5<!-- type=misc -->
6
7Welcome to the official API reference documentation for Node.js!
8
9Node.js is a JavaScript runtime built on the [V8 JavaScript engine][].
10
11## Contributing
12
13Report errors in this documentation in [the issue tracker][]. See
14[the contributing guide][] for directions on how to submit pull requests.
15
16## Stability index
17
18<!--type=misc-->
19
20Throughout the documentation are indications of a section's stability. Some APIs
21are so proven and so relied upon that they are unlikely to ever change at all.
22Others are brand new and experimental, or known to be hazardous.
23
24The stability indices are as follows:
25
26> Stability: 0 - Deprecated. The feature may emit warnings. Backward
27> compatibility is not guaranteed.
28
29<!-- separator -->
30
31> Stability: 1 - Experimental. The feature is not subject to
32> [semantic versioning][] rules. Non-backward compatible changes or removal may
33> occur in any future release. Use of the feature is not recommended in
34> production environments.
35
36<!-- separator -->
37
38> Stability: 2 - Stable. Compatibility with the npm ecosystem is a high
39> priority.
40
41<!-- separator -->
42
43> Stability: 3 - Legacy. Although this feature is unlikely to be removed and is
44> still covered by semantic versioning guarantees, it is no longer actively
45> maintained, and other alternatives are available.
46
47Features are marked as legacy rather than being deprecated if their use does no
48harm, and they are widely relied upon within the npm ecosystem. Bugs found in
49legacy features are unlikely to be fixed.
50
51Use caution when making use of Experimental features, particularly within
52modules. Users may not be aware that experimental features are being used.
53Bugs or behavior changes may surprise users when Experimental API
54modifications occur. To avoid surprises, use of an Experimental feature may need
55a command-line flag. Experimental features may also emit a [warning][].
56
57## Stability overview
58
59<!-- STABILITY_OVERVIEW_SLOT_BEGIN -->
60| API | Stability |
61| --- | --------- |
62| [Assert](assert.html) | (2) Stable |
63| [Async hooks](async_hooks.html) | (1) Experimental |
64| [Asynchronous context tracking](async_context.html) | (2) Stable |
65| [Buffer](buffer.html) | (2) Stable |
66| [Child process](child_process.html) | (2) Stable |
67| [Cluster](cluster.html) | (2) Stable |
68| [Console](console.html) | (2) Stable |
69| [Crypto](crypto.html) | (2) Stable |
70| [Diagnostics Channel](diagnostics_channel.html) | (2) Stable |
71| [DNS](dns.html) | (2) Stable |
72| [Domain](domain.html) | (0) Deprecated |
73| [File system](fs.html) | (2) Stable |
74| [HTTP](http.html) | (2) Stable |
75| [HTTP/2](http2.html) | (2) Stable |
76| [HTTPS](https.html) | (2) Stable |
77| [Inspector](inspector.html) | (2) Stable |
78| [Modules: `node:module` API](module.html) | (1) .1 - Active development |
79| [Modules: CommonJS modules](modules.html) | (2) Stable |
80| [OS](os.html) | (2) Stable |
81| [Path](path.html) | (2) Stable |
82| [Performance measurement APIs](perf_hooks.html) | (2) Stable |
83| [Punycode](punycode.html) | (0) Deprecated |
84| [Query string](querystring.html) | (2) Stable |
85| [Readline](readline.html) | (2) Stable |
86| [REPL](repl.html) | (2) Stable |
87| [Single executable applications](single-executable-applications.html) | (1) Experimental: This feature is being designed and will change. |
88| [Stream](stream.html) | (2) Stable |
89| [String decoder](string_decoder.html) | (2) Stable |
90| [Test runner](test.html) | (1) Experimental |
91| [Timers](timers.html) | (2) Stable |
92| [TLS (SSL)](tls.html) | (2) Stable |
93| [Trace events](tracing.html) | (1) Experimental |
94| [TTY](tty.html) | (2) Stable |
95| [UDP/datagram sockets](dgram.html) | (2) Stable |
96| [URL](url.html) | (2) Stable |
97| [Util](util.html) | (2) Stable |
98| [VM (executing JavaScript)](vm.html) | (2) Stable |
99| [Web Crypto API](webcrypto.html) | (1) Experimental |
100| [Web Streams API](webstreams.html) | (1) Experimental. |
101| [WebAssembly System Interface (WASI)](wasi.html) | (1) Experimental |
102| [Worker threads](worker_threads.html) | (2) Stable |
103| [Zlib](zlib.html) | (2) Stable |
104<!-- STABILITY_OVERVIEW_SLOT_END -->
105
106## JSON output
107
108<!-- YAML
109added: v0.6.12
110-->
111
112Every `.html` document has a corresponding `.json` document. This is for IDEs
113and other utilities that consume the documentation.
114
115## System calls and man pages
116
117Node.js functions which wrap a system call will document that. The docs link
118to the corresponding man pages which describe how the system call works.
119
120Most Unix system calls have Windows analogues. Still, behavior differences may
121be unavoidable.
122
123[V8 JavaScript engine]: https://v8.dev/
124[semantic versioning]: https://semver.org/
125[the contributing guide]: https://github.com/nodejs/node/blob/HEAD/CONTRIBUTING.md
126[the issue tracker]: https://github.com/nodejs/node/issues/new
127[warning]: process.md#event-warning
128