Skip to content

Node.js Modules

41 Node.js API modules (plus @gjsify/node-polyfills meta and 5 Vala native bridges) implemented for GJS using native GNOME libraries.

Node.js API Coverage

38 of 41 Node.js modules

User-facing Node modules backed by GLib, Gio, Soup, and native Vala bridges. 3 deprecated or browser-irrelevant modules ship as stubs so dependency checks resolve.

93% 33 full 5 partial 3 stub
4 / 4 Full Full Full Full 8 / 8 Full Full Full Server + ClientRequest + Agent Full Full h2 via ALPN; pushStream/respondWithFD/respondWithFile via @gjsify/http2-native (libnghttp2) Full Full npm ws drop-in; Autobahn 510 OK / 0 FAIL Partial 4 / 4 Full Full Full Full 1 / 1 Full 3 / 4 Full Cross-process IPC, file-based workers Partial Full Stub 6 / 6 Full Full Full Full Full Full 9 / 11 Full Full Full Full Full Full GLib-source-safe (GLib.timeout_add) Full Full Deprecated alias for util Full Stub Deprecated by Node Stub 1 / 1 Partial 2 / 2 runInThisContext via eval; no realm isolation Partial Wire-format v15 serialize/deserialize; no heap snapshot or CPU profile Partial
PackageGNOME LibsStatusNotes
assertFullAssertionError, deepEqual, throws, strict
async_hooksFullAsyncLocalStorage, AsyncResource, createHook
bufferFullBuffer via Blob/File/atob/btoa
child_processGioFullexec/execSync, spawn/spawnSync via Gio.Subprocess
clusterStubisPrimary, isWorker
consoleFullConsole with stream support
constantsFullFlattened os.constants + fs.constants (deprecated Node alias)
cryptoGLibFullHash / Hmac / PBKDF2 / HKDF / scrypt / AES / DH / ECDH / Sign / Verify / KeyObject / X509
dgramGioFullUDP via Gio.Socket
diagnostics_channelFullChannel, TracingChannel
dnsGioFulllookup, resolve4/6, reverse via Gio.Resolver + promises
domainStubDeprecated
eventsFullEventEmitter (prototype methods enumerable for socket.io v4)
fsGioFullsync/callback/promises/streams/FSWatcher; URL path args everywhere
globalsGLibFullprocess, Buffer, structuredClone, TextEncoder/Decoder, URL, queueMicrotask
httpSoup 3.0FullServer (Soup.Server), IncomingMessage, ServerResponse, Agent
http2Soup 3.0Fullh2 via ALPN; PUSH_PROMISE/HEADERS/DATA via @gjsify/http2-native (Vala + libnghttp2)
httpsSoup 3.0FullTLS-backed Agent, request/get via Soup + GIO
inspectorStubSession stub
moduleGio, GLibFullbuiltinModules, isBuiltin, createRequire
netGioFullSocket (Gio.SocketClient), Server (Gio.SocketService)
osGLibFullhomedir, hostname, cpus
pathFullPOSIX + Win32
perf_hooksFullperformance (Web API / GLib fallback)
processGLibFullextends EventEmitter, env, cwd, platform, nextTick
querystringFullparse/stringify
readlineFullInterface, createInterface, question, prompt
sqliteGda 6.0PartialDatabaseSync / StatementSync on libgda SQLite provider
streamFullReadable, Writable, Duplex, Transform, PassThrough
string_decoderFullUTF-8, Base64, hex, streaming
sysFullDeprecated alias for util
timersFullsetTimeout/setInterval/setImmediate + promises (GLib-safe)
tlsGioFullTLSSocket via Gio.TlsClientConnection + @gjsify/tls-native (Vala)
ttyFullReadStream/WriteStream, ANSI escapes
urlGLibFullURL (static createObjectURL/revokeObjectURL), URLSearchParams via GLib.Uri
utilFullinspect, format, promisify, types
v8PartialWire-format v15 serialize/deserialize; getHeapStatistics; no heap snapshot or CPU profile
vmPartialrunInThisContext, runInNewContext, Script, compileFunction
worker_threadsGio, GLibPartialMessageChannel/Port/BroadcastChannel, subprocess Worker; SharedArrayBuffer via @gjsify/sab-native (cross-process, file-based)
ws (npm)Soup 3.0Partialws-compat WebSocket client + WebSocketServer over @gjsify/websocket
zlibFullgzip/deflate via Web Compression API, Gio fallback
PackagePurpose
@gjsify/node-polyfillsUmbrella dep — pulls every Node polyfill so scaffolds resolve any node:* import out of the box