# API overview

> Every built-in module and global in Elide: Node modules and where each is documented, the `elide:` modules, the Python `elide` module, the `Elide` global and Web globals.

JavaScript code gets the [`Elide` global](https://elide.help/docs/api-globals-elide), Node built-in modules, `elide:` database modules,
and Web globals. Suite results are in the [Compatibility Matrix](https://elide.help/docs/compatibility). Java and Kotlin programs: see
[JVM APIs](https://elide.help/docs/api-jvm).

## Built-in modules

Node modules resolve with or without the `node:` prefix. Each page links the upstream documentation, lists
differences, and ends with a generated reference: exports, anything not implemented, and suite results.

<!-- api-reference:start 904a1b23b589 -->
| Module | Page | Status | Suite |
| --- | --- | --- | --- |
| `assert`, `assert/strict` | [node:assert](https://elide.help/docs/api-node-assert) | Partial | 53.8% of 13 |
| `async_hooks` | [node:async_hooks](https://elide.help/docs/api-node-async-hooks) | Partial | 80.0% of 45 |
| `buffer` | [node:buffer](https://elide.help/docs/api-node-buffer) | Full | 90.3% of 62 |
| `child_process` | [node:child_process](https://elide.help/docs/api-node-child-process) | Full | Not measured |
| `console` | [node:console](https://elide.help/docs/api-node-console) | Partial | 95.2% of 21 |
| `crypto` | [node:crypto](https://elide.help/docs/api-node-crypto) | Partial | 84.8% of 112 |
| `dgram` | [node:dgram](https://elide.help/docs/api-node-dgram) | Full | Not measured |
| `diagnostics_channel` | [node:diagnostics_channel](https://elide.help/docs/api-node-diagnostics-channel) | Full | 62.7% of 67 |
| `dns`, `dns/promises` | [node:dns](https://elide.help/docs/api-node-dns) | Full | 85.0% of 20 |
| `domain` | [node:domain](https://elide.help/docs/api-node-domain) | Full | Not measured |
| `events` | [node:events](https://elide.help/docs/api-node-events) | Full | 89.5% of 38 |
| `fs`, `fs/promises` | [node:fs](https://elide.help/docs/api-node-fs) | Partial | 93.2% of 264 |
| `http`, `https` | [node:http](https://elide.help/docs/api-node-http) | Partial | Not measured |
| `module` | [node:module](https://elide.help/docs/api-node-module) | Partial | 86.5% of 52 |
| `net` | [node:net](https://elide.help/docs/api-node-net) | Partial | Not measured |
| `os` | [node:os](https://elide.help/docs/api-node-os) | Full | Not measured |
| `path`, `path/posix`, `path/win32` | [node:path](https://elide.help/docs/api-node-path) | Full | 100.0% of 16 |
| `perf_hooks` | [node:perf_hooks](https://elide.help/docs/api-node-perf-hooks) | Partial | Not measured |
| `querystring` | [node:querystring](https://elide.help/docs/api-node-querystring) | Full | Not measured |
| `stream`, `stream/promises`, `stream/web`, `stream/consumers`, `stream/iter` | [node:stream](https://elide.help/docs/api-node-stream) | Partial | 90.3% of 238 |
| `test` | [node:test](https://elide.help/docs/api-node-test) | Partial | Not measured |
| `timers`, `timers/promises` | [node:timers](https://elide.help/docs/api-node-timers) | Full | 94.7% of 57 |
| `url` | [node:url](https://elide.help/docs/api-node-url) | Full | 95.2% of 42 |
| `util`, `util/types` | [node:util](https://elide.help/docs/api-node-util) | Partial | 50.0% of 18 |
| `v8` | [node:v8](https://elide.help/docs/api-node-v8) | Partial | Not measured |
| `vm` | [node:vm](https://elide.help/docs/api-node-vm) | Full | 84.2% of 95 |
| `worker_threads` | [node:worker_threads](https://elide.help/docs/api-node-worker-threads) | Partial | 82.0% of 128 |
| `zlib`, `zlib/iter` | [node:zlib](https://elide.help/docs/api-node-zlib) | Partial | Not measured |
| `process` | [process](https://elide.help/docs/api-globals-process) | Partial | 88.5% of 87 |

## Web globals

| Globals | Page | Status | Suite |
| --- | --- | --- | --- |
| `fetch`, `Headers`, `Request`, `Response` and 3 more | [Fetch](https://elide.help/docs/api-whatwg-fetch) | Full | 57.9% of 2,511 |
| `ReadableStream`, `ReadableStreamDefaultReader`, `ReadableStreamDefaultController`, `ReadableStreamBYOBReader` and 9 more | [Streams](https://elide.help/docs/api-whatwg-streams) | Full | Not measured |
| `CompressionStream`, `DecompressionStream` | [Compression streams](https://elide.help/docs/api-whatwg-compression) | Full | Not measured |
| `URL`, `URLSearchParams` | [URL](https://elide.help/docs/api-whatwg-url) | Full | 96.0% of 9,046 |
| `URLPattern` | [URLPattern](https://elide.help/docs/api-whatwg-urlpattern) | Full | Not measured |
| `TextEncoderStream`, `TextDecoderStream`, `TextDecoder`, `TextEncoder` | [Encoding](https://elide.help/docs/api-whatwg-encoding) | Full | 99.4% of 14,266 |
| `crypto`, `SubtleCrypto` | [Web Crypto](https://elide.help/docs/api-whatwg-web-crypto) | Full | Not measured |
| `Event`, `CustomEvent`, `EventTarget` | [DOM events](https://elide.help/docs/api-whatwg-dom-events) | Full | Not measured |
| `AbortController`, `AbortSignal` | [DOM abort](https://elide.help/docs/api-whatwg-dom-abort) | Full | Not measured |
| `setTimeout`, `clearTimeout`, `setInterval`, `clearInterval` and 2 more | [Timers](https://elide.help/docs/api-html-timers) | Full | Not measured |
| `MessageEvent`, `MessageChannel`, `MessagePort` | [Messaging](https://elide.help/docs/api-wintercg-messaging) | Partial | Not measured |
| `navigator`, `WorkerNavigator` | [WorkerNavigator](https://elide.help/docs/api-wintercg-navigator) | Full | Not measured |
| `performance`, `PerformanceEntry`, `PerformanceMark`, `PerformanceMeasure` and 3 more | [Performance](https://elide.help/docs/api-wintercg-performance) | Full | Not measured |
| `DOMException`, `PromiseRejectionEvent` | [Other globals](https://elide.help/docs/api-web-misc-globals) | Full | Not measured |
<!-- api-reference:end -->

## Other built-in modules

| Module | Status |
| --- | --- |
| `cluster` | Unavailable |
| `constants` | Unavailable |
| `http2` | Unavailable |
| `inspector` | Unavailable |
| `punycode` | `encode`, `decode`, `toASCII` and `toUnicode` |
| `readline`, `readline/promises` | Line iteration, `question()` and the cursor and key-press helpers |
| `repl` | Unavailable |
| `sea` | Unavailable |
| `sqlite` | [SQLite](https://elide.help/docs/api-sqlite) |
| `string_decoder` | `StringDecoder`, including split multi-byte and base64 input |
| `sys` | Loads; the same object as `util` |
| `test/reporters` | Unavailable |
| `tls` | Client connections with `tls.connect`; `createServer` throws and `rootCertificates` is empty |
| `trace_events` | Unavailable |
| `tty` | `isatty`, `ReadStream` and `WriteStream` |
| `wasi` | Unavailable |

Importing an unavailable module throws `ERR_UNKNOWN_BUILTIN_MODULE`.

### `elide:` aliases

`elide:X` returns the same module object as `node:X`. There is no `elide:compression`; use `node:zlib` or
`CompressionStream`.

## Elide modules

| Module | Exports | Page |
| --- | --- | --- |
| `elide:sqlite`, `elide:postgres`, `elide:mysql` | `Database` | [Databases](https://elide.help/docs/api-database) |
| `elide:cel` | `compile` | [CEL module](https://elide.help/docs/api-cel) |
| `elide:telemetry` | `flush`, `status`, `enter`, `wrapTracer`, `release` | [`elide:telemetry`](https://elide.help/docs/opentelemetry/javascript#elidetelemetry) |

Python code gets the [`elide` module](https://elide.help/docs/api-python-elide) for calling JavaScript and sharing functions.

## Telemetry

| Module | Page |
| --- | --- |
| `@opentelemetry/api`, `@opentelemetry/api-logs`, `@opentelemetry/api/experimental` | Built in when not installed; [OpenTelemetry in JavaScript](https://elide.help/docs/opentelemetry/javascript) |
| `elide:telemetry` | `flush`, `status`, `enter`, `wrapTracer`, `release`; [`elide:telemetry`](https://elide.help/docs/opentelemetry/javascript#elidetelemetry) |
| Python `opentelemetry`, `elide.telemetry` | [OpenTelemetry in Python](https://elide.help/docs/opentelemetry/python) |
