
In this section, we explore the world of programming, algorithms, networks, and infrastructure
The node:os module provides operating system-related utility methods and properties. It enables developers to query CPU architecture, memory usage, system paths, user information, and constants for signals and errors. This module helps applications adapt to the environment they run in by exposing system-level details.
The node:path module provides utilities for working with file and directory paths. It allows developers to parse, format, normalize, join, and resolve paths in a way that adapts to the operating system. To ensure consistent results across platforms, Node.js offers path.win32 for Windows-style paths and path.posix for POSIX-style paths.
The node:perf_hooks module implements a subset of the W3C Web Performance APIs along with Node.js-specific extensions for measuring application performance. It provides tools for high-resolution timing, performance marks and measures, resource timing, and event loop utilization. These APIs help developers analyze execution time, identify bottlenecks, and optimize applications.
The Node.js Permission Model provides a mechanism to restrict process access to system resources. It acts as a "seat belt," preventing trusted code from unintentionally modifying files or using resources without explicit permission. However, it does not guarantee protection against malicious code, which can bypass restrictions. Developers can configure permissions at startup or check them at runtime.
The process object in Node.js provides information about and control over the current Node.js process. It is an instance of EventEmitter and supports a wide range of events such as exit, beforeExit, uncaughtException, and system signals. It also exposes methods and properties for CPU architecture, command-line arguments, memory usage, working directory, and inter-process communication (IPC).
The punycode module in Node.js is a bundled implementation of the Punycode.js library, based on RFC 3492. It provides encoding and decoding functionality for Internationalized Domain Names (IDNs), converting Unicode characters into ASCII-compatible strings. Since hostnames in URLs must be ASCII-only, Punycode is used to represent non-ASCII domain names. However, the module has been deprecated since Node.js v7.0.0 and will be removed in future versions. Developers should migrate to the standalone Punycode.js library or use modern alternatives such as the WHATWG URL API.
The readline module in Node.js provides an interface for reading data from a Readable stream (such as process.stdin) line by line. It is widely used for building command-line interfaces (CLIs), handling user input, and processing files line-by-line. Node.js supports both Promise-based APIs and Callback-based APIs for working with readline.
The repl module in Node.js provides a Read-Eval-Print-Loop (REPL) environment that can be used as a standalone program or embedded within applications. It allows developers to interactively execute JavaScript code, inspect results, and experiment with Node.js features. REPL supports input completion, history, multi-line editing, ANSI-styled output, error recovery, and custom evaluation functions.
Diagnostic reports in Node.js provide a JSON-formatted snapshot of the runtime state, including JavaScript and native stack traces, heap statistics, platform details, resource usage, and system limits. They are designed for development, testing, and production environments to help identify and resolve issues. Reports can be triggered automatically on uncaught exceptions, fatal errors, and signals, or programmatically via API calls.
The Single Executable Applications (SEA) feature in Node.js allows developers to distribute applications as standalone executables, even on systems without Node.js installed. This is achieved by injecting a prepared blob (containing the bundled script and optional assets) into the Node.js binary. At runtime, Node.js checks for the blob and executes it if present; otherwise, it behaves normally. SEA currently supports embedding a single CommonJS script.
The node:sqlite module provides a native interface for working with SQLite databases directly in Node.js. . It supports synchronous APIs for database connections, prepared statements, sessions, changesets, and advanced features such as custom functions, aggregates, and defensive flags. This module is under active development and is designed to make SQLite integration seamless and secure within Node.js applications.
The node:stream module is a core component of Node.js, providing an abstraction for working with streaming data. Streams enable efficient handling of I/O operations, especially when dealing with large files, network communication, or real‑time data processing. They are built on top of EventEmitter and come in four primary types: Readable, Writable, Duplex, and Transform.