Node compatibility
This library tries to provide basic support for most common used Node.js modules and use cases. The focus is not to provide a 100% Node.js compatibility environment.
| Module | Supported | Description |
|---|---|---|
assert | ✅ | Provides a set of assertion functions for testing |
async_hooks | ❌ | Provides an API to track asynchronous resources |
buffer | ✅ | Provides a way of handling binary data |
child_process | ❌ | Allows for the creation of child processes |
cluster | ❌ | Provides support for creating a cluster of Node.js processes |
console | ❌ | Simple debugging console similar to the JavaScript console |
crypto | ❌ | Provides cryptographic functionality |
dgram | ❌ | Provides implementation of UDP datagram sockets |
dns | ❌ | Provides DNS lookups and name resolution functions |
domain | ❌ | Simplified handling of uncaught exceptions |
events | ✅ | Provides an event-driven programming model |
fs | ✅ | Provides an API for interacting with the file system |
http | ❌ | Provides HTTP server and client functionality |
http2 | ❌ | Provides HTTP/2 server and client functionality |
https | ❌ | Provides HTTPS server and client functionality |
inspector | ❌ | Provides an interface for debugging Node.js applications |
module | ✅ | Load and manage Node.js modules |
net | ❌ | Provides an asynchronous network API |
os | ❌ | Provides operating system-related utility methods |
path | ✅ | Provides utilities for working with file and directory paths |
perf_hooks | ❌ | Performance timing APIs |
process | ✅ | Provides information and control over the current process |
punycode | ✅ | Provides encoding and decoding of Punycode |
querystring | ✅ | Provides utilities for parsing and formatting URL query strings |
readline | ❌ | Provides an interface for reading data from a Readable stream |
repl | ❌ | Provides a Read-Eval-Print Loop (REPL) interface |
stream | ❌ | Provides an API for implementing stream-based I/O |
string_decoder | ✅ | Provides utilities for decoding buffer objects into strings |
timers | ✅ | Provides timer functions similar to those in JavaScript |
timers/promises | ✅ | Promise-based timer functions |
tls | ❌ | Provides an implementation of TLS and SSL protocols |
trace_events | ❌ | Provides a mechanism to centralize tracing information |
tty | ❌ | Provides utilities for working with TTYs (terminals) |
url | ✅ | Provides utilities for URL resolution and parsing |
util | ✅ | Provides various utility functions |
v8 | ❌ | Provides an API for interacting with the V8 JavaScript engine |
vm | ❌ | Provides APIs for compiling and running code within V8 VM contexts |
worker_threads | ❌ | Provides a mechanism to use threads for JavaScript execution |
zlib | ❌ | Provides compression and decompression functionalities |
node:fs
Thanks to memfs, this lib provides basic support of node:fs and node:fs/promises module.
| Method | Supported |
|---|---|
| access | |
| accessSync | |
| appendFile | ✅ |
| appendFileSync | ✅ |
| chmod | ❌ |
| chmodSync | ❌ |
| chown | ❌ |
| chownSync | ❌ |
| close | |
| closeSync | |
| copyFile | |
| copyFileSync | |
| createReadStream | |
| createWriteStream | |
| exists | ✅ |
| existsSync | ✅ |
| fchmod | ❌ |
| fchmodSync | ❌ |
| fchown | ❌ |
| fchownSync | ❌ |
| fdatasync | |
| fdatasyncSync | |
| fstat | |
| fstatSync | |
| fsync | |
| fsyncSync | |
| ftruncate | |
| ftruncateSync | |
| futimes | |
| futimesSync | |
| lchmod | ❌ |
| lchmodSync | ❌ |
| lchown | ❌ |
| lchownSync | ❌ |
| link | |
| linkSync | |
| lstat | |
| lstatSync | |
| mkdir | ✅ |
| mkdirSync | ✅ |
| mkdtemp | ✅ |
| mkdtempSync | ✅ |
| open | |
| openSync | |
| readdir | ✅ |
| readdirSync | ✅ |
| read | |
| readSync | |
| readFile | ✅ |
| readFileSync | ✅ |
| readlink | |
| readlinkSync | |
| realpath | |
| realpathSync | |
| rename | ✅ |
| renameSync | ✅ |
| rmdir | ✅ |
| rmdirSync | ✅ |
| stat | |
| statSync | |
| symlink | |
| symlinkSync | |
| truncate | |
| truncateSync | |
| unlink | |
| unlinkSync | |
| utimes | |
| utimesSync | |
| write | |
| writeSync | |
| writeFile | ✅ |
| writeFileSync | ✅ |
node:assert
| Method | Supported |
|---|---|
| fail | ✅ |
| ok | ✅ |
| equal | ✅ |
| notEqual | ✅ |
| deepEqual | ✅ |
| notDeepEqual | ✅ |
| strictEqual | ✅ |
| notStrictEqual | ✅ |
node:module
| Method | Supported |
|---|---|
| createRequire | ✅ |
| isBuiltin | ✅ |
| register | ❌ |
| syncBuiltinESMExports | ❌ |
node:path
| Method | Supported |
|---|---|
| parse | ✅ |
| format | ✅ |
| extname | ✅ |
| basename | ✅ |
| dirname | ✅ |
| _makeLong | ✅ |
| relative | ✅ |
| join | ✅ |
| isAbsolute | ✅ |
| normalize | ✅ |
| resolve | ✅ |
| _format | ✅ |
| normalizeStringPosix | ✅ |
| assertPath | ✅ |
node:util
| Method | Supported |
|---|---|
| promisify | ✅ |
| callbackify | ✅ |
| inherits | ✅ |
| deprecate | ✅ |
Here are the supported util.types methods:
| Method | Supported |
|---|---|
| isAnyArrayBuffer | ✅ |
| isArrayBufferView | ✅ |
| isArgumentsObject | ✅ |
| isArrayBuffer | ✅ |
| isAsyncFunction | ✅ |
| isBigInt64Array | ✅ |
| isBigUint64Array | ✅ |
| isBooleanObject | ✅ |
| isBoxedPrimitive | ✅ |
| isDataView | ✅ |
| isDate | ✅ |
| isFloat32Array | ✅ |
| isFloat64Array | ✅ |
| isGeneratorFunction | ✅ |
| isGeneratorObject | ✅ |
| isInt8Array | ✅ |
| isInt16Array | ✅ |
| isInt32Array | ✅ |
| isMap | ✅ |
| isMapIterator | ✅ |
| isNativeError | ✅ |
| isNumberObject | ✅ |
| isPromise | ✅ |
| isRegExp | ✅ |
| isSet | ✅ |
| isSetIterator | ✅ |
| isSharedArrayBuffer | ✅ |
| isStringObject | ✅ |
| isSymbolObject | ✅ |
| isTypedArray | ✅ |
| isUint8Array | ✅ |
| isUint8ClampedArray | ✅ |
| isUint16Array | ✅ |
| isUint32Array | ✅ |
| isWeakMap | ✅ |
| isWeakSet | ✅ |
node:events
A copy of eventemitter3 is used.