Computer Science

Computer Science

In this section, we explore the world of programming, algorithms, networks, and infrastructure

ProgrammingAlgorithmsComputer NetworksTechnologyInfrastructureSoftware EngineeringHardware Engineering

Related Categories

Featured Articles

The OS Module in Node.js

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.

/article/the-os-module-in-nodejs

The Path Module in Node.js

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.

/article/the-path-module-in-nodejs

Performance Measurement APIs in Node.js

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.

/article/performance-measurement-apis-in-nodejs

Permissions in Node.js

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.

/article/permissions-in-nodejs

The Process Object in Node.js

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).

/article/the-process-object-in-nodejs

The Punycode Module in Node.js

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.

/article/the-punycode-module-in-nodejs

The Readline Module in Node.js

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.

/article/the-readline-module-in-nodejs

The REPL Module in Node.js

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.

/article/the-repl-module-in-nodejs

Diagnostic Reports in Node.js

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.

/article/diagnostic-reports-in-nodejs

Single Executable Applications in Node.js

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.

/article/single-executable-applications-in-nodejs

The SQLite Module in Node.js

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.

/article/the-sqlite-module-in-nodejs

Comprehensive Guide to Node.js Streams (node:stream API)

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.

/article/comprehensive-guide-to-nodejs-streams-nodestream-api
Computer Science | Dr. Shahin Siami