visaljs

Node API

Which parts of Node's built-in modules a compiled program can use. For each module, an export is what require("node:…") gives under Node v24.21.0: implemented, stubbed (it exists but throws when called), or missing. Measured by compiling a program that imports every provided module and lists its exports.

of exports
1,145 of 1,284 exports implemented
stubbed
present, but throw ERR_VISALJS_UNSUPPORTED when called
modules
provided: importing any other is a compile error
complete
modules with every export implemented
implemented 1,145stubbed 39missing 100

Reading this page

  • One level deep: http.createServer counts, the methods of the server it returns don't. Whether every option works is what the differential tests check.
  • A stub lets code that only mentions an export compile and run; calling it throws ERR_VISALJS_UNSUPPORTED.
  • Generated by node tests/compat/node.ts into node/compat.json; the notes come from node/compat.notes.json.

Provided (56)

Importing these works. Expand a module to see its exports.

▸node:assert22 / 22complete

Node's, ported: every assertion, deep equality (loose, strict, partial), AssertionError with Node's messages and diffs, Assert and CallTracker. Diffs are never colored. assert.ok(value) without a message says false == true: Node quotes the call's source text, which it reads from the file at run time, and a compiled program has none.

Implemented (22)

  • Assert
  • AssertionError
  • CallTracker
  • deepEqual
  • deepStrictEqual
  • doesNotMatch
  • doesNotReject
  • doesNotThrow
  • equal
  • fail
  • ifError
  • match
  • notDeepEqual
  • notDeepStrictEqual
  • notEqual
  • notStrictEqual
  • ok
  • partialDeepStrictEqual
  • rejects
  • strict
  • strictEqual
  • throws
▸node:assert/strict22 / 22complete

node:assert's strict variant (see assert).

Implemented (22)

  • Assert
  • AssertionError
  • CallTracker
  • deepEqual
  • deepStrictEqual
  • doesNotMatch
  • doesNotReject
  • doesNotThrow
  • equal
  • fail
  • ifError
  • match
  • notDeepEqual
  • notDeepStrictEqual
  • notEqual
  • notStrictEqual
  • ok
  • partialDeepStrictEqual
  • rejects
  • strict
  • strictEqual
  • throws
▸node:async_hooks7 / 7complete

AsyncLocalStorage keeps its stores in the async context the runtime carries through promises, jobs, timers and I/O callbacks, as Node's AsyncContextFrame does; AsyncResource keeps the context it was created in. Hooks never fire, and async ids are counters.

Implemented (7)

  • AsyncLocalStorage
  • AsyncResource
  • asyncWrapProviders
  • createHook
  • executionAsyncId
  • executionAsyncResource
  • triggerAsyncId
▸node:buffer14 / 14complete

Implemented (14)

  • Blob
  • Buffer
  • File
  • INSPECT_MAX_BYTES
  • SlowBuffer
  • atob
  • btoa
  • constants
  • isAscii
  • isUtf8
  • kMaxLength
  • kStringMaxLength
  • resolveObjectURL
  • transcode
▸node:console25 / 25complete

Implemented (25)

  • Console
  • assert
  • clear
  • context
  • count
  • countReset
  • createTask
  • debug
  • dir
  • dirxml
  • error
  • group
  • groupCollapsed
  • groupEnd
  • info
  • log
  • profile
  • profileEnd
  • table
  • time
  • timeEnd
  • timeLog
  • timeStamp
  • trace
  • warn
▸node:diagnostics_channel6 / 6complete

Channels and TracingChannel as Node has them, bindStore and runStores with AsyncLocalStorage.

Implemented (6)

  • Channel
  • channel
  • hasSubscribers
  • subscribe
  • tracingChannel
  • unsubscribe
▸node:domain4 / 4complete

Implemented (4)

  • Domain
  • active
  • create
  • createDomain
▸node:events15 / 15complete

Implemented (15)

  • EventEmitter
  • EventEmitterAsyncResource
  • addAbortListener
  • captureRejectionSymbol
  • captureRejections
  • defaultMaxListeners
  • errorMonitor
  • getEventListeners
  • getMaxListeners
  • init
  • listenerCount
  • on
  • once
  • setMaxListeners
  • usingDomains
▸node:fs/promises33 / 33complete

node:fs's calls as promises, and open's FileHandle (read, write, readv, writev, readFile, writeFile, stat, truncate, sync, utimes, chmod, chown, streams, readLines, close, Symbol.asyncDispose, 'close'); glob and watch as async iterators. lchmod is ERR_METHOD_NOT_IMPLEMENTED, as on Node outside macOS. Not yet: FileHandle.readableWebStream.

Implemented (33)

  • access
  • appendFile
  • chmod
  • chown
  • constants
  • copyFile
  • cp
  • glob
  • lchmod
  • lchown
  • link
  • lstat
  • lutimes
  • mkdir
  • mkdtemp
  • mkdtempDisposable
  • open
  • opendir
  • readFile
  • readdir
  • readlink
  • realpath
  • rename
  • rm
  • rmdir
  • stat
  • statfs
  • symlink
  • truncate
  • unlink
  • utimes
  • watch
  • writeFile
▸node:https6 / 6complete

HTTP over node:tls, as Node's: Server is a tls.Server whose secure connections get http.Server's requests (the C parser fed the decrypted bytes), Agent connects with tls.connect and reuses TLS sessions by origin, request and get are http's with port 443. SNI comes from the Host header, as in Node.

Implemented (6)

  • Agent
  • Server
  • createServer
  • get
  • globalAgent
  • request
▸node:net16 / 16complete

TCP and Unix domain socket servers and sockets (Socket is a Duplex with backpressure, half-close and timeouts); host names through dns.lookup, with happy eyeballs. Not yet: passing handles to child processes (no child_process or cluster).

Implemented (16)

  • BlockList
  • BoundSocket
  • Server
  • Socket
  • SocketAddress
  • Stream
  • connect
  • createConnection
  • createServer
  • getDefaultAutoSelectFamily
  • getDefaultAutoSelectFamilyAttemptTimeout
  • isIP
  • isIPv4
  • isIPv6
  • setDefaultAutoSelectFamily
  • setDefaultAutoSelectFamilyAttemptTimeout
▸node:os23 / 23complete

Implemented (23)

  • EOL
  • arch
  • availableParallelism
  • constants
  • cpus
  • devNull
  • endianness
  • freemem
  • getPriority
  • homedir
  • hostname
  • loadavg
  • machine
  • networkInterfaces
  • platform
  • release
  • setPriority
  • tmpdir
  • totalmem
  • type
  • uptime
  • userInfo
  • version
▸node:path16 / 16complete

Implemented (16)

  • basename
  • delimiter
  • dirname
  • extname
  • format
  • isAbsolute
  • join
  • matchesGlob
  • normalize
  • parse
  • posix
  • relative
  • resolve
  • sep
  • toNamespacedPath
  • win32
▸node:path/posix16 / 16complete

Implemented (16)

  • basename
  • delimiter
  • dirname
  • extname
  • format
  • isAbsolute
  • join
  • matchesGlob
  • normalize
  • parse
  • posix
  • relative
  • resolve
  • sep
  • toNamespacedPath
  • win32
▸node:path/win3216 / 16complete

Implemented (16)

  • basename
  • delimiter
  • dirname
  • extname
  • format
  • isAbsolute
  • join
  • matchesGlob
  • normalize
  • parse
  • posix
  • relative
  • resolve
  • sep
  • toNamespacedPath
  • win32
▸node:punycode6 / 6complete

Implemented (6)

  • decode
  • encode
  • toASCII
  • toUnicode
  • ucs2
  • version
▸node:querystring7 / 7complete

Implemented (7)

  • decode
  • encode
  • escape
  • parse
  • stringify
  • unescape
  • unescapeBuffer
▸node:readline/promises3 / 3complete

node:readline's Interface with question() as a promise (an AbortSignal rejects it with an AbortError), and Readline's queued cursor moves.

Implemented (3)

  • Interface
  • Readline
  • createInterface
▸node:sea5 / 5complete

Implemented (5)

  • getAsset
  • getAssetAsBlob
  • getAssetKeys
  • getRawAsset
  • isSea
▸node:stream20 / 20complete

Implemented (20)

  • Duplex
  • PassThrough
  • Readable
  • Stream
  • Transform
  • Writable
  • addAbortSignal
  • compose
  • destroy
  • duplexPair
  • finished
  • getDefaultHighWaterMark
  • isDestroyed
  • isDisturbed
  • isErrored
  • isReadable
  • isWritable
  • pipeline
  • promises
  • setDefaultHighWaterMark
▸node:stream/promises2 / 2complete

Implemented (2)

  • finished
  • pipeline
▸node:string_decoder1 / 1complete

Implemented (1)

  • StringDecoder
▸node:sys31 / 31complete

Implemented (31)

  • MIMEParams
  • MIMEType
  • TextDecoder
  • TextEncoder
  • aborted
  • callbackify
  • convertProcessSignalToExitCode
  • debug
  • debuglog
  • deprecate
  • diff
  • format
  • formatWithOptions
  • getCallSites
  • getSystemErrorMap
  • getSystemErrorMessage
  • getSystemErrorName
  • inherits
  • inspect
  • isArray
  • isDeepStrictEqual
  • parseArgs
  • parseEnv
  • promisify
  • setTraceSigInt
  • stripVTControlCharacters
  • styleText
  • toUSVString
  • transferableAbortController
  • transferableAbortSignal
  • types
▸node:test/reporters5 / 5complete

Implemented (5)

  • dot
  • junit
  • lcov
  • spec
  • tap
▸node:timers7 / 7complete

The globals are node:timers' functions, returning Timeout and Immediate objects, in programs that may use them (a Timeout's unref, hasRef or refresh, or node:timers itself; not with --no-bundle or --script); elsewhere they return numbers. A Timeout's primitive is its timer's id, not an async_hooks id.

Implemented (7)

  • clearImmediate
  • clearInterval
  • clearTimeout
  • promises
  • setImmediate
  • setInterval
  • setTimeout
▸node:timers/promises4 / 4complete

Implemented (4)

  • scheduler
  • setImmediate
  • setInterval
  • setTimeout
▸node:trace_events2 / 2complete

Implemented (2)

  • createTracing
  • getEnabledCategories
▸node:util31 / 31complete

Implemented (31)

  • MIMEParams
  • MIMEType
  • TextDecoder
  • TextEncoder
  • aborted
  • callbackify
  • convertProcessSignalToExitCode
  • debug
  • debuglog
  • deprecate
  • diff
  • format
  • formatWithOptions
  • getCallSites
  • getSystemErrorMap
  • getSystemErrorMessage
  • getSystemErrorName
  • inherits
  • inspect
  • isArray
  • isDeepStrictEqual
  • parseArgs
  • parseEnv
  • promisify
  • setTraceSigInt
  • stripVTControlCharacters
  • styleText
  • toUSVString
  • transferableAbortController
  • transferableAbortSignal
  • types
▸node:util/types43 / 43complete

Implemented (43)

  • isAnyArrayBuffer
  • isArgumentsObject
  • isArrayBuffer
  • isArrayBufferView
  • isAsyncFunction
  • isBigInt64Array
  • isBigIntObject
  • isBigUint64Array
  • isBooleanObject
  • isBoxedPrimitive
  • isCryptoKey
  • isDataView
  • isDate
  • isExternal
  • isFloat16Array
  • isFloat32Array
  • isFloat64Array
  • isGeneratorFunction
  • isGeneratorObject
  • isInt16Array
  • isInt32Array
  • isInt8Array
  • isKeyObject
  • isMap
  • isMapIterator
  • isModuleNamespaceObject
  • isNativeError
  • isNumberObject
  • isPromise
  • isProxy
  • isRegExp
  • isSet
  • isSetIterator
  • isSharedArrayBuffer
  • isStringObject
  • isSymbolObject
  • isTypedArray
  • isUint16Array
  • isUint32Array
  • isUint8Array
  • isUint8ClampedArray
  • isWeakMap
  • isWeakSet
▸node:zlib47 / 47complete

Deflate, gzip and raw deflate with their inverses and Unzip, as streams, with callbacks and synchronous, on Chromium's zlib as Node vendors it: the same compressed bytes. A write's callback runs on a later turn, but the work happens when it is called (no thread pool). Brotli and zstd too, each linked into programs whose code names it (a name only computed at run time throws ERR_VISALJS_UNSUPPORTED).

Implemented (47)

  • BrotliCompress
  • BrotliDecompress
  • Deflate
  • DeflateRaw
  • Gunzip
  • Gzip
  • Inflate
  • InflateRaw
  • Unzip
  • ZstdCompress
  • ZstdDecompress
  • brotliCompress
  • brotliCompressSync
  • brotliDecompress
  • brotliDecompressSync
  • codes
  • constants
  • crc32
  • createBrotliCompress
  • createBrotliDecompress
  • createDeflate
  • createDeflateRaw
  • createGunzip
  • createGzip
  • createInflate
  • createInflateRaw
  • createUnzip
  • createZstdCompress
  • createZstdDecompress
  • deflate
  • deflateRaw
  • deflateRawSync
  • deflateSync
  • gunzip
  • gunzipSync
  • gzip
  • gzipSync
  • inflate
  • inflateRaw
  • inflateRawSync
  • inflateSync
  • unzip
  • unzipSync
  • zstdCompress
  • zstdCompressSync
  • zstdDecompress
  • zstdDecompressSync
▸node:fs100 / 101partial

The synchronous calls, and the callback and promise forms over them (the I/O happens when called, not on a thread pool). readdir (recursive too), opendir and Dir, cp (Node's checks and messages), glob (minimatch's patterns: braces, classes, extglobs, **), statfs, readv and writev, openAsBlob, and watch (inotify, kqueue, … through libuv) and watchFile (a stat poller): the larger ones are linked into programs that name them. Not yet: the bigint option of watchFile, and Buffer paths in places.

Implemented (100)

  • Dir
  • Dirent
  • FileReadStream
  • FileWriteStream
  • ReadStream
  • Stats
  • WriteStream
  • access
  • accessSync
  • appendFile
  • appendFileSync
  • chmod
  • chmodSync
  • chown
  • chownSync
  • close
  • closeSync
  • constants
  • copyFile
  • copyFileSync
  • cp
  • cpSync
  • createReadStream
  • createWriteStream
  • exists
  • existsSync
  • fchmod
  • fchmodSync
  • fchown
  • fchownSync
  • fdatasync
  • fdatasyncSync
  • fstat
  • fstatSync
  • fsync
  • fsyncSync
  • ftruncate
  • ftruncateSync
  • futimes
  • futimesSync
  • glob
  • globSync
  • lchown
  • lchownSync
  • link
  • linkSync
  • lstat
  • lstatSync
  • lutimes
  • lutimesSync
  • mkdir
  • mkdirSync
  • mkdtemp
  • mkdtempDisposableSync
  • mkdtempSync
  • open
  • openAsBlob
  • openSync
  • opendir
  • opendirSync
  • promises
  • read
  • readFile
  • readFileSync
  • readSync
  • readdir
  • readdirSync
  • readlink
  • readlinkSync
  • readv
  • readvSync
  • realpath
  • realpathSync
  • rename
  • renameSync
  • rm
  • rmSync
  • rmdir
  • rmdirSync
  • stat
  • statSync
  • statfs
  • statfsSync
  • symlink
  • symlinkSync
  • truncate
  • truncateSync
  • unlink
  • unlinkSync
  • unwatchFile
  • utimes
  • utimesSync
  • watch
  • watchFile
  • write
  • writeFile
  • writeFileSync
  • writeSync
  • writev
  • writevSync

Missing (1)

  • Utf8Stream
▸node:constants235 / 240partial

Deprecated in Node, still loaded by graceful-fs: os.constants' dlopen, errno, priority and signals, fs.constants and crypto.constants in one frozen object, as Node builds it. Has only the crypto constants node:crypto provides.

Implemented (235)

  • COPYFILE_EXCL
  • COPYFILE_FICLONE
  • COPYFILE_FICLONE_FORCE
  • DH_CHECK_P_NOT_PRIME
  • DH_CHECK_P_NOT_SAFE_PRIME
  • DH_NOT_SUITABLE_GENERATOR
  • DH_UNABLE_TO_CHECK_GENERATOR
  • E2BIG
  • EACCES
  • EADDRINUSE
  • EADDRNOTAVAIL
  • EAFNOSUPPORT
  • EAGAIN
  • EALREADY
  • EBADF
  • EBADMSG
  • EBUSY
  • ECANCELED
  • ECHILD
  • ECONNABORTED
  • ECONNREFUSED
  • ECONNRESET
  • EDEADLK
  • EDESTADDRREQ
  • EDOM
  • EDQUOT
  • EEXIST
  • EFAULT
  • EFBIG
  • EHOSTUNREACH
  • EIDRM
  • EILSEQ
  • EINPROGRESS
  • EINTR
  • EINVAL
  • EIO
  • EISCONN
  • EISDIR
  • ELOOP
  • EMFILE
  • EMLINK
  • EMSGSIZE
  • EMULTIHOP
  • ENAMETOOLONG
  • ENETDOWN
  • ENETRESET
  • ENETUNREACH
  • ENFILE
  • ENGINE_METHOD_ALL
  • ENGINE_METHOD_CIPHERS
  • ENGINE_METHOD_DH
  • ENGINE_METHOD_DIGESTS
  • ENGINE_METHOD_DSA
  • ENGINE_METHOD_EC
  • ENGINE_METHOD_NONE
  • ENGINE_METHOD_PKEY_ASN1_METHS
  • ENGINE_METHOD_PKEY_METHS
  • ENGINE_METHOD_RAND
  • ENGINE_METHOD_RSA
  • ENOBUFS
  • ENODATA
  • ENODEV
  • ENOENT
  • ENOEXEC
  • ENOLCK
  • ENOLINK
  • ENOMEM
  • ENOMSG
  • ENOPROTOOPT
  • ENOSPC
  • ENOSR
  • ENOSTR
  • ENOSYS
  • ENOTCONN
  • ENOTDIR
  • ENOTEMPTY
  • ENOTSOCK
  • ENOTSUP
  • ENOTTY
  • ENXIO
  • EOPNOTSUPP
  • EOVERFLOW
  • EPERM
  • EPIPE
  • EPROTO
  • EPROTONOSUPPORT
  • EPROTOTYPE
  • ERANGE
  • EROFS
  • ESPIPE
  • ESRCH
  • ESTALE
  • ETIME
  • ETIMEDOUT
  • ETXTBSY
  • EWOULDBLOCK
  • EXDEV
  • F_OK
  • OPENSSL_VERSION_NUMBER
  • O_APPEND
  • O_CREAT
  • O_DIRECT
  • O_DIRECTORY
  • O_DSYNC
  • O_EXCL
  • O_NOATIME
  • O_NOCTTY
  • O_NOFOLLOW
  • O_NONBLOCK
  • O_RDONLY
  • O_RDWR
  • O_SYNC
  • O_TRUNC
  • O_WRONLY
  • POINT_CONVERSION_COMPRESSED
  • POINT_CONVERSION_HYBRID
  • POINT_CONVERSION_UNCOMPRESSED
  • PRIORITY_ABOVE_NORMAL
  • PRIORITY_BELOW_NORMAL
  • PRIORITY_HIGH
  • PRIORITY_HIGHEST
  • PRIORITY_LOW
  • PRIORITY_NORMAL
  • RSA_NO_PADDING
  • RSA_PKCS1_OAEP_PADDING
  • RSA_PKCS1_PADDING
  • RSA_PKCS1_PSS_PADDING
  • RSA_PSS_SALTLEN_AUTO
  • RSA_PSS_SALTLEN_DIGEST
  • RSA_PSS_SALTLEN_MAX_SIGN
  • RSA_X931_PADDING
  • RTLD_DEEPBIND
  • RTLD_GLOBAL
  • RTLD_LAZY
  • RTLD_LOCAL
  • RTLD_NOW
  • R_OK
  • SIGABRT
  • SIGALRM
  • SIGBUS
  • SIGCHLD
  • SIGCONT
  • SIGFPE
  • SIGHUP
  • SIGILL
  • SIGINT
  • SIGIO
  • SIGIOT
  • SIGKILL
  • SIGPIPE
  • SIGPOLL
  • SIGPROF
  • SIGPWR
  • SIGQUIT
  • SIGSEGV
  • SIGSTKFLT
  • SIGSTOP
  • SIGSYS
  • SIGTERM
  • SIGTRAP
  • SIGTSTP
  • SIGTTIN
  • SIGTTOU
  • SIGURG
  • SIGUSR1
  • SIGUSR2
  • SIGVTALRM
  • SIGWINCH
  • SIGXCPU
  • SIGXFSZ
  • SSL_OP_ALL
  • SSL_OP_ALLOW_NO_DHE_KEX
  • SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION
  • SSL_OP_CIPHER_SERVER_PREFERENCE
  • SSL_OP_CISCO_ANYCONNECT
  • SSL_OP_COOKIE_EXCHANGE
  • SSL_OP_CRYPTOPRO_TLSEXT_BUG
  • SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS
  • SSL_OP_LEGACY_SERVER_CONNECT
  • SSL_OP_NO_COMPRESSION
  • SSL_OP_NO_ENCRYPT_THEN_MAC
  • SSL_OP_NO_QUERY_MTU
  • SSL_OP_NO_RENEGOTIATION
  • SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION
  • SSL_OP_NO_SSLv2
  • SSL_OP_NO_SSLv3
  • SSL_OP_NO_TICKET
  • SSL_OP_NO_TLSv1
  • SSL_OP_NO_TLSv1_1
  • SSL_OP_NO_TLSv1_2
  • SSL_OP_NO_TLSv1_3
  • SSL_OP_PRIORITIZE_CHACHA
  • SSL_OP_TLS_ROLLBACK_BUG
  • S_IFBLK
  • S_IFCHR
  • S_IFDIR
  • S_IFIFO
  • S_IFLNK
  • S_IFMT
  • S_IFREG
  • S_IFSOCK
  • S_IRGRP
  • S_IROTH
  • S_IRUSR
  • S_IRWXG
  • S_IRWXO
  • S_IRWXU
  • S_IWGRP
  • S_IWOTH
  • S_IWUSR
  • S_IXGRP
  • S_IXOTH
  • S_IXUSR
  • TLS1_1_VERSION
  • TLS1_2_VERSION
  • TLS1_3_VERSION
  • TLS1_VERSION
  • UV_DIRENT_BLOCK
  • UV_DIRENT_CHAR
  • UV_DIRENT_DIR
  • UV_DIRENT_FIFO
  • UV_DIRENT_FILE
  • UV_DIRENT_LINK
  • UV_DIRENT_SOCKET
  • UV_DIRENT_UNKNOWN
  • UV_FS_COPYFILE_EXCL
  • UV_FS_COPYFILE_FICLONE
  • UV_FS_COPYFILE_FICLONE_FORCE
  • UV_FS_O_FILEMAP
  • UV_FS_SYMLINK_DIR
  • UV_FS_SYMLINK_JUNCTION
  • W_OK
  • X_OK
  • defaultCipherList
  • defaultCoreCipherList

Missing (5)

  • RSA_SSLV23_PADDING
  • UV_FS_O_RANDOM
  • UV_FS_O_SEQUENTIAL
  • UV_FS_O_SHORT_LIVED
  • UV_FS_O_TEMPORARY
▸node:tls18 / 19partial

TLS 1.0–1.3 on BoringSSL: clients and servers, verification as Node's, SNI, ALPN, client certificates, sessions and tickets, half-close. Not yet: PSK, pfx, encrypted keys, CRLs, OCSP, DH suites, starting a renegotiation, getPeerX509Certificate (needs crypto.X509Certificate); getFinished is undefined with TLS 1.3.

Implemented (18)

  • CLIENT_RENEG_LIMIT
  • CLIENT_RENEG_WINDOW
  • DEFAULT_CIPHERS
  • DEFAULT_ECDH_CURVE
  • DEFAULT_MAX_VERSION
  • DEFAULT_MIN_VERSION
  • SecureContext
  • Server
  • TLSSocket
  • checkServerIdentity
  • connect
  • convertALPNProtocols
  • createSecureContext
  • createServer
  • getCACertificates
  • getCiphers
  • rootCertificates
  • setDefaultCACertificates

Missing (1)

  • getCertificateCompressionAlgorithms

Not in Node (1)

  • createSecurePair
▸node:url13 / 14partial

Implemented (13)

  • URL
  • URLSearchParams
  • Url
  • domainToASCII
  • domainToUnicode
  • fileURLToPath
  • fileURLToPathBuffer
  • format
  • parse
  • pathToFileURL
  • resolve
  • resolveObject
  • urlToHttpOptions

Missing (1)

  • URLPattern
▸node:crypto62 / 70partial

Implemented (62)

  • Cipheriv
  • Decipheriv
  • DiffieHellman
  • DiffieHellmanGroup
  • ECDH
  • Hash
  • Hmac
  • KeyObject
  • Sign
  • Verify
  • checkPrime
  • checkPrimeSync
  • constants
  • createCipheriv
  • createDecipheriv
  • createDiffieHellman
  • createDiffieHellmanGroup
  • createECDH
  • createHash
  • createHmac
  • createPrivateKey
  • createPublicKey
  • createSecretKey
  • createSign
  • createVerify
  • diffieHellman
  • generateKey
  • generateKeyPair
  • generateKeyPairSync
  • generateKeySync
  • generatePrime
  • generatePrimeSync
  • getCipherInfo
  • getCiphers
  • getCurves
  • getDiffieHellman
  • getFips
  • getHashes
  • getRandomValues
  • hash
  • hkdf
  • hkdfSync
  • pbkdf2
  • pbkdf2Sync
  • privateDecrypt
  • privateEncrypt
  • publicDecrypt
  • publicEncrypt
  • randomBytes
  • randomFill
  • randomFillSync
  • randomInt
  • randomUUID
  • scrypt
  • scryptSync
  • secureHeapUsed
  • setFips
  • sign
  • subtle
  • timingSafeEqual
  • verify
  • webcrypto

Stubbed (3)

  • Certificate
  • X509Certificate
  • setEngine

Missing (5)

  • argon2
  • argon2Sync
  • decapsulate
  • encapsulate
  • randomUUIDv7

Not in Node (2)

  • Cipher
  • Decipher
▸node:test15 / 17partial

Node's runner: test / it, describe / suite, the hooks, test contexts (subtests, plan, skip, todo, diagnostic, t.mock, t.assert, waitFor), mocks, and the tap and spec reporters. The current test is carried in an AsyncLocalStorage (Node maps async ids). Reports have no test locations or stack frames: a compiled program knows neither. Not yet: run(), snapshots, mock.timers, mock.module.

Implemented (15)

  • after
  • afterEach
  • assert
  • before
  • beforeEach
  • describe
  • it
  • mock
  • only
  • run
  • skip
  • snapshot
  • suite
  • test
  • todo

Missing (2)

  • expectFailure
  • getTestContext
▸node:child_process7 / 8partial

spawn, exec, execFile and their synchronous forms on libuv, with Node's options (shell, env, cwd, stdio, detached, uid / gid, timeout, maxBuffer, killSignal, signal) and ChildProcess's events; a child's pipes are net.Sockets. fork() and the 'ipc' stdio throw ERR_VISALJS_UNSUPPORTED: they start a Node, which a compiled program doesn't have.

Implemented (7)

  • ChildProcess
  • exec
  • execFile
  • execFileSync
  • execSync
  • spawn
  • spawnSync

Stubbed (1)

  • fork
▸node:readline7 / 8partial

Interface reads its input a line at a time as Node's does when the input isn't a terminal: lines, question (also promisified), prompt, pause and resume, the async iterator, and the cursor functions. A terminal is read in its normal mode, the terminal editing and echoing the line: Node's own editor in raw mode (keys, history, tab completion) isn't provided, nor is emitKeypressEvents.

Implemented (7)

  • Interface
  • clearLine
  • clearScreenDown
  • createInterface
  • cursorTo
  • moveCursor
  • promises

Stubbed (1)

  • emitKeypressEvents
▸node:cluster11 / 13partial

Implemented (11)

  • SCHED_NONE
  • SCHED_RR
  • disconnect
  • isMaster
  • isPrimary
  • isWorker
  • schedulingPolicy
  • settings
  • setupMaster
  • setupPrimary
  • workers

Stubbed (2)

  • Worker
  • fork
▸node:perf_hooks11 / 13partial

performance: now(), timeOrigin, marks and measures, from process.hrtime. Not yet: PerformanceObserver, PerformanceResourceTiming, monitorEventLoopDelay, createHistogram, eventLoopUtilization.

Implemented (11)

  • Performance
  • PerformanceEntry
  • PerformanceMark
  • PerformanceMeasure
  • PerformanceObserver
  • PerformanceObserverEntryList
  • PerformanceResourceTiming
  • constants
  • createHistogram
  • monitorEventLoopDelay
  • performance

Missing (2)

  • eventLoopUtilization
  • timerify
▸node:stream/consumers5 / 6partial

Implemented (5)

  • arrayBuffer
  • blob
  • buffer
  • json
  • text

Missing (1)

  • bytes
▸node:v819 / 23partial

Implemented (19)

  • DefaultDeserializer
  • DefaultSerializer
  • Deserializer
  • GCProfiler
  • Serializer
  • cachedDataVersionTag
  • deserialize
  • getCppHeapStatistics
  • getHeapCodeStatistics
  • getHeapSpaceStatistics
  • getHeapStatistics
  • isStringOneByteRepresentation
  • promiseHooks
  • serialize
  • setFlagsFromString
  • setHeapSnapshotNearHeapLimit
  • startupSnapshot
  • stopCoverage
  • takeCoverage

Stubbed (3)

  • getHeapSnapshot
  • queryObjects
  • writeHeapSnapshot

Missing (1)

  • startCpuProfile
▸node:process54 / 66partial

An EventEmitter in programs that call its emitter methods (not with --no-bundle or --script): 'beforeExit', 'exit', 'uncaughtException', 'unhandledRejection', 'rejectionHandled' and signals ('SIGINT', …). Its other members are added in programs that name them, as process's or by a distinctive name, so the probe (which names none) lists the properties among them as missing: stdin (a terminal, a file, a pipe or a socket, as Node makes it), memoryUsage, title, ppid, release, config, report, finalization, debugPort, domain, sourceMapsEnabled, moduleLoadList, allowedNodeEnvironmentFlags. chdir, umask, uptime, cpuUsage, resourceUsage, the memory figures, the uid/gid setters (POSIX), execve, loadEnvFile and the uncaught exception capture callback work as Node's; getBuiltinModule gives the built-ins the program names with a literal string. A compiled program has no internal bindings or native addons (binding and dlopen throw ERR_VISALJS_UNSUPPORTED), no NODE_OPTIONS flags (allowedNodeEnvironmentFlags is empty), and getActiveResourcesInfo is an empty list. Not yet: 'warning'.

Implemented (54)

  • abort
  • arch
  • argv
  • argv0
  • availableMemory
  • binding
  • chdir
  • constrainedMemory
  • cpuUsage
  • cwd
  • dlopen
  • emit
  • emitWarning
  • env
  • execArgv
  • execPath
  • execve
  • exit
  • features
  • getActiveResourcesInfo
  • getBuiltinModule
  • getegid
  • geteuid
  • getgid
  • getgroups
  • getuid
  • hasUncaughtExceptionCaptureCallback
  • hrtime
  • initgroups
  • kill
  • loadEnvFile
  • memoryUsage
  • nextTick
  • openStdin
  • pid
  • platform
  • reallyExit
  • ref
  • resourceUsage
  • setSourceMapsEnabled
  • setUncaughtExceptionCaptureCallback
  • setegid
  • seteuid
  • setgid
  • setgroups
  • setuid
  • stderr
  • stdout
  • threadCpuUsage
  • umask
  • unref
  • uptime
  • version
  • versions

Missing (12)

  • allowedNodeEnvironmentFlags
  • config
  • debugPort
  • domain
  • finalization
  • moduleLoadList
  • ppid
  • release
  • report
  • sourceMapsEnabled
  • stdin
  • title

Not in Node (1)

  • assert
▸node:http16 / 20partial

Server and client over net.Socket, with llhttp parsing in C both ways: keep-alive (Agent pooling), chunked bodies and trailers, upgrades and CONNECT, timeouts. Not yet: the WebSocket client (WebSocket, CloseEvent, MessageEvent), insecureHTTPParser's leniency.

Implemented (16)

  • Agent
  • ClientRequest
  • IncomingMessage
  • METHODS
  • OutgoingMessage
  • STATUS_CODES
  • Server
  • ServerResponse
  • createServer
  • get
  • globalAgent
  • maxHeaderSize
  • request
  • setMaxIdleHTTPParsers
  • validateHeaderName
  • validateHeaderValue

Missing (4)

  • CloseEvent
  • MessageEvent
  • WebSocket
  • setGlobalProxyFromEnv
▸node:module15 / 19partial

createRequire's require gives the packages the bundler found the program may require at run time (bundled), else throws MODULE_NOT_FOUND: a compiled program loads no code at run time. A JSON file (a path ending in .json) is data: it is read and parsed when required, and cached. register is a stub.

Implemented (15)

  • Module
  • SourceMap
  • builtinModules
  • constants
  • createRequire
  • enableCompileCache
  • findPackageJSON
  • findSourceMap
  • flushCompileCache
  • getCompileCacheDir
  • getSourceMapsSupport
  • globalPaths
  • isBuiltin
  • setSourceMapsSupport
  • syncBuiltinESMExports

Stubbed (4)

  • register
  • registerHooks
  • runMain
  • stripTypeScriptTypes

Not in Node (2)

  • wrap
  • wrapper
▸node:tty2 / 3partial

isatty, and ReadStream on libuv's terminal handle, with setRawMode (process.stdin in a terminal). Not yet: WriteStream: process.stdout and process.stderr have isTTY.

Implemented (2)

  • ReadStream
  • isatty

Stubbed (1)

  • WriteStream
▸node:worker_threads13 / 21partial

A compiled program is one thread, the main one: isMainThread, threadId 0, no parentPort or workerData; environment data and the untransferable marks work. Worker, MessageChannel, MessagePort, BroadcastChannel and the port functions throw ERR_VISALJS_UNSUPPORTED, so a library that loads it for a parallel mode it isn't asked for (mocha) runs.

Implemented (13)

  • SHARE_ENV
  • getEnvironmentData
  • isInternalThread
  • isMainThread
  • isMarkedAsUntransferable
  • markAsUncloneable
  • markAsUntransferable
  • parentPort
  • resourceLimits
  • setEnvironmentData
  • threadId
  • threadName
  • workerData

Stubbed (7)

  • BroadcastChannel
  • MessageChannel
  • MessagePort
  • Worker
  • moveMessagePortToContext
  • postMessageToThread
  • receiveMessageOnPort

Missing (1)

  • locks
▸node:vm6 / 10partial

Implemented (6)

  • Script
  • constants
  • createContext
  • createScript
  • isContext
  • measureMemory

Stubbed (4)

  • compileFunction
  • runInContext
  • runInNewContext
  • runInThisContext
▸node:dns29 / 50partial

lookup only (getaddrinfo) and the constants. Not yet: the resolve* queries, lookupService and Resolver.

Implemented (29)

  • ADDRCONFIG
  • ADDRGETNETWORKPARAMS
  • ALL
  • BADFAMILY
  • BADFLAGS
  • BADHINTS
  • BADNAME
  • BADQUERY
  • BADRESP
  • BADSTR
  • CANCELLED
  • CONNREFUSED
  • DESTRUCTION
  • EOF
  • FILE
  • FORMERR
  • LOADIPHLPAPI
  • NODATA
  • NOMEM
  • NONAME
  • NOTFOUND
  • NOTIMP
  • NOTINITIALIZED
  • REFUSED
  • SERVFAIL
  • TIMEOUT
  • V4MAPPED
  • lookup
  • promises

Missing (21)

  • Resolver
  • getDefaultResultOrder
  • getServers
  • lookupService
  • resolve
  • resolve4
  • resolve6
  • resolveAny
  • resolveCaa
  • resolveCname
  • resolveMx
  • resolveNaptr
  • resolveNs
  • resolvePtr
  • resolveSoa
  • resolveSrv
  • resolveTlsa
  • resolveTxt
  • reverse
  • setDefaultResultOrder
  • setServers
▸node:repl4 / 7partial

Implemented (4)

  • REPL_MODE_SLOPPY
  • REPL_MODE_STRICT
  • Recoverable
  • writer

Stubbed (3)

  • REPLServer
  • isValidSyntax
  • start
▸node:inspector5 / 9partial

A compiled program has no V8 inspector to connect to: it loads as in a process no debugger is attached to (url() is undefined, close() does nothing), and open, waitForDebugger and a Session throw.

Implemented (5)

  • Network
  • NetworkResources
  • close
  • console
  • url

Stubbed (3)

  • Session
  • open
  • waitForDebugger

Missing (1)

  • DOMStorage
▸node:inspector/promises5 / 9partial

Implemented (5)

  • Network
  • NetworkResources
  • close
  • console
  • url

Stubbed (3)

  • Session
  • open
  • waitForDebugger

Missing (1)

  • DOMStorage
▸node:stream/web10 / 18partial

Implemented (10)

  • CompressionStream
  • DecompressionStream
  • ReadableStream
  • ReadableStreamDefaultController
  • ReadableStreamDefaultReader
  • TransformStream
  • TransformStreamDefaultController
  • WritableStream
  • WritableStreamDefaultController
  • WritableStreamDefaultWriter

Missing (8)

  • ByteLengthQueuingStrategy
  • CountQueuingStrategy
  • ReadableByteStreamController
  • ReadableStreamBYOBReader
  • ReadableStreamBYOBRequest
  • ReadableStreamTee
  • TextDecoderStream
  • TextEncoderStream
▸node:dns/promises25 / 46partial

Implemented (25)

  • ADDRGETNETWORKPARAMS
  • BADFAMILY
  • BADFLAGS
  • BADHINTS
  • BADNAME
  • BADQUERY
  • BADRESP
  • BADSTR
  • CANCELLED
  • CONNREFUSED
  • DESTRUCTION
  • EOF
  • FILE
  • FORMERR
  • LOADIPHLPAPI
  • NODATA
  • NOMEM
  • NONAME
  • NOTFOUND
  • NOTIMP
  • NOTINITIALIZED
  • REFUSED
  • SERVFAIL
  • TIMEOUT
  • lookup

Missing (21)

  • Resolver
  • getDefaultResultOrder
  • getServers
  • lookupService
  • resolve
  • resolve4
  • resolve6
  • resolveAny
  • resolveCaa
  • resolveCname
  • resolveMx
  • resolveNaptr
  • resolveNs
  • resolvePtr
  • resolveSoa
  • resolveSrv
  • resolveTlsa
  • resolveTxt
  • reverse
  • setDefaultResultOrder
  • setServers
▸node:http23 / 11partial

Implemented (3)

  • Http2ServerRequest
  • Http2ServerResponse
  • constants

Stubbed (3)

  • connect
  • createSecureServer
  • createServer

Missing (5)

  • getDefaultSettings
  • getPackedSettings
  • getUnpackedSettings
  • performServerHandshake
  • sensitiveHeaders
▸node:wasi0 / 1stubs only

Stubbed (1)

  • WASI

Not provided (2)

Importing these is a compile error: node:dns is not provided by visaljs.

▸node:dgram0 / 2not provided

Missing (2)

  • Socket
  • createSocket
▸node:sqlite0 / 5not provided

Missing (5)

  • DatabaseSync
  • Session
  • StatementSync
  • backup
  • constants