The Node Core Modules
By Flavio Copes
A reference to the Node.js core modules that ship with the platform, like fs, http, test, sqlite, crypto, path, events, and stream, and what each one does.
~~~
Node.js has a set of core modules that are part of the platform and come with the Node.js installation.
We have a lot of them. Here are the main ones, as listed in the current Node.js docs (Node 24 LTS and Node 26):
| Name | Description |
|---|---|
| assert | provides a set of assertion functions useful for testing |
| async_hooks | tracks the lifetime of asynchronous resources |
| buffer | provides the ability to handle buffers containing binary data |
| child_process | provides the ability to spawn child processes |
| console | provides a simple debugging console |
| cluster | allows to split a Node.js process into multiple workers to take advantage of multi-core systems |
| crypto | provides cryptographic functionality |
| diagnostics_channel | creates named channels for diagnostic data |
| dgram | provides an implementation of UDP Datagram sockets |
| dns | provides name resolution and DNS lookups |
| events | provides an API for managing events |
| fs | provides an API for interacting with the file system |
| http | provides an HTTP client/server implementation |
| http2 | provides an HTTP/2 client/server implementation |
| https | provides an HTTPS client/server implementation |
| inspector | provides an API for the V8 inspector |
| module | provides utilities for the module system (node:module) |
| net | provides an asynchronous network API |
| os | provides operating system-related utility methods and properties |
| path | provides utilities for working with file and directory paths |
| perf_hooks | to enable the collection of performance metrics |
| process | provides information about, and control over, the current Node.js process |
| querystring | legacy utilities for URL query strings; prefer URLSearchParams for new code |
| readline | provides an interface for reading data from a Readable stream |
| repl | provides a Read-Eval-Print-Loop (REPL) implementation that is available both as a standalone program or includible in other applications |
| sqlite | provides a built-in SQLite client (still a release candidate in Node 24 and 26) |
| stream | an abstract interface for working with streaming data |
| string_decoder | provides an API for decoding Buffer objects into strings |
| test | the built-in test runner |
| timers | provide functions to schedule functions to be called at some future period of time |
| tls | provides an implementation of the Transport Layer Security (TLS) and Secure Socket Layer (SSL) protocols |
| trace_events | provides access to V8 Trace Event categories |
| tty | provides functionality used to perform I/O operations in a text terminal |
| url | provides utilities for URL resolution and parsing |
| util | supports the needs of Node.js internal APIs, useful for application and module developers as well |
| v8 | exposes APIs that are specific to the version of V8 built into the Node.js binary |
| vm | enables compiling and running code within V8 Virtual Machine contexts |
| wasi | provides an implementation of the WebAssembly System Interface specification |
| worker_threads | enables the use of threads that execute JavaScript in parallel |
| zlib | provides compression functionality |
Check out my detailed tutorials on
- The Node.js
eventsmodule - The Node.js
fsmodule - The Node.js
httpmodule - The Node.js
osmodule - The Node.js
pathmodule - The Node.js test runner
- node:sqlite
- Node.js built-ins that replaced npm packages
Want me to talk about your product? You can sponsor this site.
~~~
Related posts about node: