# Elide > Elide is a high-performance runtime and toolchain for Kotlin, Java, JavaScript, TypeScript and Python. One binary runs JavaScript, TypeScript, Python, Java, Kotlin and WebAssembly, and builds, tests, formats and installs dependencies for projects. https://elide.help is the Elide documentation. Every page below links to its Markdown version. Any page is also available as Markdown by appending `.md` to its URL or by sending `Accept: text/markdown`. ## When to use Use the Elide documentation when a task involves the `elide` command or a project that uses it: - Installing Elide, or pinning a version in CI and containers. - Running JavaScript, TypeScript or Python files with `elide run` or `elide python`, or mixing languages in one process with `--interop`. - Building, testing and packaging Java and Kotlin projects with an `elide.pkl` manifest: `elide build`, `elide test`, Maven dependencies, JARs, native images and container images. - Installing Maven or npm dependencies with `elide install`. - Checking whether a Node.js API or Web API is supported, and what differs. - Migrating from Node, Bun, Deno, Python, Java or Kotlin tooling to Elide. - Running Elide from an AI agent or CI job without a terminal: non-interactive flags, exit codes, and Elide's own MCP server (`elide mcp`). How to call it: - Search: `GET https://elide.help/api/v1/search?q=` returns ranked pages with slugs; `GET https://elide.help/api/v1/pages/` returns one page with its Markdown. No authentication. - MCP: connect a Streamable HTTP client to https://elide.help/mcp and call `search_docs`, then `get_page`; `list_pages` lists every page. - Report an Elide bug, slow run, surprise or missing feature with the developer's consent: `preview_report`, then `submit_report` on https://elide.help/mcp; `check_known_issue` finds existing issues. - Bulk: https://elide.help/llms-full.txt is the whole documentation in one file. - With Elide installed, `elide help --format=markdown` prints any page in the terminal. Install the Elide CLI: - Linux and macOS: `curl -sSL --tlsv1.2 elide.sh | bash -s -` - Homebrew: `brew install elide-dev/elide/elide` (tap: https://github.com/elide-dev/homebrew-elide) - Every method, including Windows, packages and containers: https://elide.help/docs/installation.md Company information, the blog and enterprise support are on https://elide.dev, not here. ## Developer and agent resources - [Developer resources](https://elide.help/developers.md): the docs API, MCP server and Markdown access, with examples - [OpenAPI description](https://elide.help/openapi.json): OpenAPI 3.1 for the read-only docs API - [API catalog](https://elide.help/.well-known/api-catalog): RFC 9727 linkset for the docs API - [MCP server](https://elide.help/mcp): Streamable HTTP endpoint with search_docs, get_page, list_pages, find_samples, compare_runtimes, get_benchmarks, and check_known_issue, preview_report, submit_report and report_status for reporting problems - [MCP server card](https://elide.help/mcp/server-card): connection metadata for MCP clients - [Full documentation](https://elide.help/llms-full.txt): every page in one Markdown file - [Page search API](https://elide.help/api/v1/search?q=install): example search request - [Elide for AI Agents](https://elide.help/docs/agents.md): run the Elide CLI from an agent - [Developer portal](https://elide.help/developers): the same resources as an HTML page ## Get Started - [Elide Overview](https://elide.help/index.md): A memory-safe, high-performance runtime that runs JavaScript, TypeScript, Python, Java, Kotlin and WebAssembly and builds and tests projects. Start here. - [Installation](https://elide.help/docs/installation.md): Install Elide on macOS, Linux, WSL or Windows with the install script, PowerShell, npm or a package manager, pick a release channel, and add Python. - [Packages and installers](https://elide.help/docs/installation/packages.md): Install Elide with Homebrew, apt, RPM, or the macOS and Windows installers, upgrade through the package manager, and verify checksums and signatures. - [Container images](https://elide.help/docs/installation/containers.md): Run Elide with Docker or any OCI runtime from the elide and bash container images for amd64 and arm64, with Python included, using version or dated nightly tags. - [Continuous integration](https://elide.help/docs/installation/ci-cd.md): Install Elide in GitHub Actions with the setup-elide action, pin a release instead of the default nightly channel, and see an example workflow. - [Getting started](https://elide.help/docs/getting-started.md): Install Elide, create a project with `elide init`, run TypeScript, Python and Kotlin files, add Maven and npm dependencies, then test and build. - [JavaScript and TypeScript with Elide](https://elide.help/docs/web.md): Run JavaScript and TypeScript with Elide without a compile step or tsconfig.json: CommonJS and ES modules, npm packages, node:test tests and servers. - [Python with Elide](https://elide.help/docs/python.md): Run Python 3.13 with Elide and CPython's arguments: install the Python component, the bundled standard library, JavaScript interop and known limitations. - [Java and Kotlin with Elide](https://elide.help/docs/jvm.md): Run Java and Kotlin source files with Elide, use the bundled JDK 25 and Kotlin tools, resolve Maven dependencies, and build and test a project. - [WebAssembly with Elide](https://elide.help/docs/wasm.md): Run WASI command modules with Elide, map host directories, load WebAssembly libraries from JavaScript and TypeScript, and check supported proposals. ## Toolchain - [Toolchain](https://elide.help/docs/toolchain.md): Run source files directly with Elide, then add an elide.pkl manifest to install dependencies, build, test, format and package a project. - [Project setup](https://elide.help/docs/projects.md): Set up an Elide project with elide.pkl: `elide init` templates, named scripts, dependencies, workspaces, and pinning the Elide version. - [Source sets](https://elide.help/docs/toolchain/source-sets.md): How Elide finds a project's sources and resources: the conventional src layout, declaring source sets in elide.pkl, precedence and per-set classpaths. - [Dependencies](https://elide.help/docs/toolchain/dependencies.md): Declare Maven, npm and PyPI dependencies in elide.pkl and install Maven and npm packages with `elide install`: ecosystems, options and installed files. - [Build tasks](https://elide.help/docs/toolchain/build-tasks.md): How `elide build` derives tasks from an elide.pkl manifest and runs them in dependency order: targets, options, the build cache, build state and timing. - [Build flags](https://elide.help/docs/toolchain/build-flags.md): Pass build flags to Elide with `--flag` or `-f` and read them in an elide.pkl manifest to parameterize a build, such as a release mode or version number. - [Testing](https://elide.help/docs/toolchain/testing.md): Run JavaScript and TypeScript `node:test` files and JUnit tests with `elide test`: discovery, selecting tests, options, reports and coverage. - [Adopt an existing project](https://elide.help/docs/toolchain/usage/adopt.md): Migrate a Java, Kotlin or Spring Boot project from Maven or Gradle to Elide with `elide adopt`: what it runs, its flags and exit codes, which projects it fits, and a worked example. - [JVM toolchain](https://elide.help/docs/toolchain/jvm.md): Elide's bundled JDK 25 and Kotlin 2.5: compile and run with javac, java and kotlinc, format, build projects, and call the tools from other builds. - [Maven dependencies](https://elide.help/docs/toolchain/jvm/maven.md): Install Maven dependencies with `elide install`, including for projects that have only a pom.xml, and configure annotation processors in an Elide project. - [Native Maven](https://elide.help/docs/toolchain/jvm/native-maven.md): Run Apache Maven 4 builds with `elide mvn` without a separate Maven or JDK install: flavors for plain and Spring Boot projects, modes and output. - [Java compiler](https://elide.help/docs/toolchain/jvm/javac.md): Compile Java 25 source with `elide javac` or in an Elide project build, without a JDK install, and the Elide options for JAR output and error limits. - [Kotlin compiler](https://elide.help/docs/toolchain/jvm/kotlinc.md): Compile Kotlin 2.5 with `elide kotlinc` or in an Elide project build, with built-in compiler plugins such as serialization and Metro, and ABI jars. - [Formatting](https://elide.help/docs/toolchain/jvm/formatting.md): Format Java and Kotlin with `elide format`, which runs the bundled google-java-format (or the Netflix jfmt dialect) and ktfmt, or run `elide javaformat` or `elide ktfmt` alone. - [OpenRewrite](https://elide.help/docs/toolchain/jvm/rewrite.md): List, preview and apply OpenRewrite recipes to Java sources with elide rewrite, add recipe dependencies, and use the code index to select files before parsing. - [Dependency code index](https://elide.help/docs/toolchain/jvm/code-index.md): Build and query Elide's Maven dependency code index: resolve class origins, inspect types and members, and find outbound references or local Java and Kotlin callers. - [JAR assembly](https://elide.help/docs/toolchain/jvm/jar.md): Create, list and extract JARs with `elide jar`, and build JARs, sources and Javadoc JARs and runnable application distributions in an Elide project. - [Maven publishing](https://elide.help/docs/toolchain/jvm/publishing.md): Publish JVM libraries with `elide publish`: install into the local Maven repository, deploy to Nexus, Artifactory or GitHub Packages, and release to Maven Central with signatures and checksums, no plugins. - [Native Image](https://elide.help/docs/toolchain/jvm/native-image.md): Compile a JVM application to a native executable or shared library with `elide native-image` or an Elide project artifact, or compile it to WebAssembly. - [WebImage: JVM to WebAssembly](https://elide.help/docs/toolchain/jvm/webimage.md): Compile Java or Kotlin to a WebAssembly module and JavaScript loader with Elide's WebImage artifact: prerequisites, backends, hosts and compiler options. - [JVM containers](https://elide.help/docs/toolchain/jvm/containers.md): Build a Docker or OCI container image from a JAR or native executable as an Elide project artifact, loaded into the local daemon or written as a tarball. - [Python toolchain](https://elide.help/docs/python-toolchain.md): What Elide's Python toolchain covers in 1.6.0: the optional Python component, running scripts and modules, pyproject.toml entry points, virtual environments, tests, and what is not available. - [Packages and virtual environments](https://elide.help/docs/python-packages.md): Use third-party Python packages with Elide: create a Python 3.13 virtual environment, install packages with uv, and set VIRTUAL_ENV so Elide imports them. - [Python tests](https://elide.help/docs/python-testing.md): Run Python tests on Elide with unittest from the standard library or pytest from a virtual environment; `elide test` does not discover Python tests in 1.6.0. - [Web toolchain](https://elide.help/docs/toolchain/web.md): Run JavaScript and TypeScript with Elide, serve files during development, process web assets, install npm packages and configure web builds in elide.pkl. - [npm installer](https://elide.help/docs/toolchain/web/npm.md): Install npm packages with `elide install --ecosystems=npm`: Elide reads package.json and the npm block in elide.pkl, and links packages into node_modules. - [Static sites](https://elide.help/docs/toolchain/web/static-site.md): Build a static site with Elide's StaticSite artifact: render Markdown, process scripts and stylesheets, compress images and copy other files. - [Browser WASM](https://elide.help/docs/toolchain/web/wasm.md): Compile Java or Kotlin to WasmGC with Elide: build a WebAssembly module and JavaScript loader, load it from a web page, and check browser support. - [Edge WASM](https://elide.help/docs/toolchain/edge/wasm.md): Build linear-memory WebAssembly from Java or Kotlin with Elide: bundle sizes, host requirements, and which runtimes run the output. ## IDE Integration - [IDE integration](https://elide.help/docs/ide.md): Work on Elide projects in VS Code, IntelliJ IDEA, Zed or any LSP or DAP editor: project sync, code intelligence, run, test and debug from the editor, and coding agents over MCP. - [VS Code extension](https://elide.help/docs/vscode.md): The Elide extension for VS Code 1.105 or newer: project sync for Kotlin and Java code intelligence, the Elide sidebar, code lenses, tests, debugging, tasks and settings. - [IntelliJ IDEA plugin](https://elide.help/docs/intellij.md): The Elide plugin for IntelliJ IDEA 2025.3 or newer: import projects and workspaces, run configurations, gutter actions, test results, coverage, debugging and the Elide distribution setting. - [Zed extension](https://elide.help/docs/zed.md): The Elide extension for Zed: `elide lsp` as a Java language server, an Elide debug adapter for JavaScript, TypeScript and Python, and debugging from Zed tasks. - [Other editors](https://elide.help/docs/connect-ide.md): Use Elide's Java language server, `elide lsp`, and its Debug Adapter Protocol server from Neovim, Helix or any LSP or DAP client: setup, root detection and the features each provides. ## Build Tool Integration - [Build tool integration](https://elide.help/docs/build-tools.md): Use Elide's javac, kotlinc, dependency resolver and JDK from inside an existing Maven, Gradle or Bazel build, without migrating to elide.pkl. - [Maven plugin](https://elide.help/docs/build-tools-maven.md): Compile Java and Kotlin in an existing Maven build with Elide's javac and kotlinc: the elide-maven-plugin, the Kotlin drop-in, and the compilerId-only setup. - [Gradle plugin](https://elide.help/docs/build-tools-gradle.md): Compile Java in an existing Gradle build with `elide javac`: the dev.elide settings and project plugins, runtime selection, persistent compilers, formatting tasks and dependency export. - [Bazel](https://elide.help/docs/build-tools-bazel.md): Compile, test and format Java and Kotlin in Bazel with rules_elide, swap rules_kotlin's builder, or call `elide javac` and `elide kotlinc` as persistent workers from your own rules. - [POM export and native Maven](https://elide.help/docs/build-tools-export.md): Hand an Elide project to Maven and other tools with `elide project export` (POM, JSON, IntelliJ model), and build the result with `elide mvn` or stock Maven. ## Guides - [Build an HTTP service](https://elide.help/docs/http-service.md): Serve HTTP from Elide with a fetch handler or node:http: routing, JSON bodies, streaming, static files, TLS, several contexts and frameworks. - [Build a polyglot app](https://elide.help/docs/polyglot.md): Combine an npm package and a PyPI package in one Elide program: pass values, functions and errors between JavaScript and Python with --interop. - [TypeScript and modules](https://elide.help/docs/typescript-and-modules.md): What Elide's TypeScript type stripping accepts and rejects, JSX, type checking with tsc and @elide-dev/types, and how ES modules, CommonJS, JSON and exports resolve. - [Development server](https://elide.help/docs/dev-server.md): Serve a directory with page reload using `elide dev` or `elide serve`, run a Fetch-style handler, and run a server across several Elide contexts. - [Interactive REPL](https://elide.help/docs/repl.md): Start Elide's REPL with `elide repl` to evaluate JavaScript, TypeScript, Python and WebAssembly interactively and share values between languages. - [Languages and interop](https://elide.help/docs/languages.md): Which languages Elide runs, how to start each one, and how Python, JavaScript and WebAssembly call each other with `--interop` and in the REPL. - [Debugging](https://elide.help/docs/debugging.md): Debug Elide programs: read plain error output, attach a debugger, measure coverage, profile CPU time, trace with Insights scripts, and report a bug. - [Troubleshooting](https://elide.help/docs/troubleshooting.md): Common Elide errors with their exact messages and fixes: missing modules, Python, JVM tools, sandbox denials, timeouts, memory and ports. - [Monitoring and profiling](https://elide.help/docs/instruments.md): Record JFR files, dump the heap, watch a running Elide process with jcmd, jps and jstat, and profile with Linux perf using the instrument flags. - [Deploy an app](https://elide.help/docs/deploy.md): Package a JavaScript or TypeScript server in a container image on elide.dev/elide, with environment, sandbox flags, logs and a health check. - [Sandbox and limits](https://elide.help/docs/sandbox.md): Restrict an Elide program's filesystem, network, subprocess, thread and native access with `--sandbox` and `--allow-*` flags, and limit resources and run time. - [Upgrading](https://elide.help/docs/upgrading.md): Update Elide, pin a project or CI job to one version with elide use and .elideversion, and the renames and removals to handle when moving from 1.5 to 1.6. ## OpenTelemetry - [OpenTelemetry](https://elide.help/docs/opentelemetry.md): Export OpenTelemetry traces, metrics, logs, errors, and profiles from Elide and your code over OTLP, with no SDK in the application: quick start, configuration, providers, and language APIs. - [OpenTelemetry configuration](https://elide.help/docs/opentelemetry/configuration.md): Configure Elide's OpenTelemetry export with the elide.pkl opentelemetry block, OTEL_* and ELIDE_OTEL_* environment variables, and --otel-* flags, and how they combine. - [OpenTelemetry providers](https://elide.help/docs/opentelemetry/providers.md): Send Elide telemetry to an OTLP collector, Sentry, Datadog, PostHog, Honeycomb, or Grafana Cloud: which signals each accepts, its credential variable, endpoint, and a setup recipe. - [OpenTelemetry signals](https://elide.help/docs/opentelemetry/signals.md): Traces, metrics, logs, errors, and experimental guest CPU profiles in Elide: what Elide records for each, the settings that control it, and how your code adds its own. - [Runtime instrumentation](https://elide.help/docs/opentelemetry/runtime.md): What Elide instruments without code changes: server spans and metrics for served requests, fetch client spans, process metrics, build and test spans in CI with TRACEPARENT, and what is not instrumented yet. - [Correlation, propagation, and baggage](https://elide.help/docs/opentelemetry/correlation.md): How Elide links logs, errors, metrics, and profiles to the active span, continues W3C trace context across HTTP, and propagates W3C baggage only when you allow it. - [OpenTelemetry in JavaScript and TypeScript](https://elide.help/docs/opentelemetry/javascript.md): Use @opentelemetry/api in JavaScript and TypeScript on Elide without an SDK: built-in and installed copies, spans with using, metrics, logs, SDK takeover and handback, the elide:telemetry module, and diagnostics_channel events. - [OpenTelemetry in Python](https://elide.help/docs/opentelemetry/python.md): Use the opentelemetry API in Python on Elide without an SDK: the vendored and installed API, spans, metrics, logging export, provider handover, and the elide.telemetry module. - [Emitted telemetry](https://elide.help/docs/opentelemetry/reference.md): Every span, metric, log record, and resource attribute Elide emits on its own: names, instrumentation scopes, units, attributes, and when each is recorded. - [OpenTelemetry troubleshooting](https://elide.help/docs/opentelemetry/troubleshooting.md): Fix missing or rejected Elide telemetry: check that a destination is configured, read configuration errors, inspect pipeline counters with status(), and see exports in a local collector. ## Agentic Engineering - [Agentic engineering](https://elide.help/docs/agentic-engineering.md): Use Elide from a coding agent: the project MCP server over stdio, the public docs MCP server, evidence commands in the binary, and reporting problems from your editor. - [Project MCP server](https://elide.help/docs/mcp.md): Run `elide mcp` over stdio to give AI agents tools to build projects, run files and snippets, and trace programs inside a project over the Model Context Protocol. - [Docs MCP server](https://elide.help/docs/mcp-docs.md): Connect an agent to https://elide.help/mcp: search the docs, read pages, find samples, compare runtimes, read benchmarks, and report problems. Public, no authentication, Streamable HTTP. - [Elide for AI Agents](https://elide.help/docs/agents.md): Run Elide non-interactively from an AI agent or CI: environment variables, timeouts, exit codes, commands that need a terminal, and collecting diagnostics. - [Report a problem](https://elide.help/docs/agentic-reporting.md): Report a bug, a slow run, a missed expectation or a missing feature from your editor through the docs MCP server: kinds, one-step consent, evidence from elide agent, and what is stored. - [From report to fix](https://elide.help/docs/agentic-triage.md): What happens to a report sent from your editor: the hourly triage, public issues in elide-dev/elide, +1s on duplicates, draft benchmark cases, and tracking with report_status. ## Runtime - [API overview](https://elide.help/docs/api-overview.md): 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 language](https://elide.help/docs/javascript-language.md): Which ECMAScript edition and proposals Elide runs (Temporal, ShadowRealm, AsyncContext, `using`, Float16Array), and the non-standard globals `print`, `printErr`, `gc`, `Operators`, `Process` and `XMLHttpRequest`. - [Elide global](https://elide.help/docs/api-globals-elide.md): The `Elide` global: version and build metadata, `Elide.serve()` options and defaults (bind address, port, TLS, body limits, timeouts), and serving a module's default-exported fetch handler. - [process](https://elide.help/docs/api-globals-process.md): How Elide supports Node's `process` global: the same object as `node:process`, with differences in `resourceUsage`, `send`, stdout and `nextTick` ordering. - [CEL API Reference](https://elide.help/docs/api-cel.md): The elide:cel module: compile and evaluate Common Expression Language expressions. - [Python elide module](https://elide.help/docs/api-python-elide.md): The Python `elide` module: evaluate JavaScript with `elide.js`, share Python functions with `elide.bind` and `@elide.poly(name=…)`, and reach telemetry controls. - [Insight scripts](https://elide.help/docs/api-insight.md): The `insight` object available to scripts loaded with Elide's `--insights` flag: the `source`, `enter` and `return` events, their filters, and what each handler receives. - [Databases](https://elide.help/docs/api-database.md): The database drivers built into Elide: embedded SQLite, PostgreSQL and MySQL from JavaScript and TypeScript, Python's sqlite3, and JDBC from Java and Kotlin. - [SQLite](https://elide.help/docs/api-sqlite.md): Embedded SQLite from JavaScript and TypeScript with `elide:sqlite`: open a file or in-memory database, prepared statements, parameters, rows and transactions. - [PostgreSQL](https://elide.help/docs/api-postgres.md): Connect to PostgreSQL from JavaScript and TypeScript with `elide:postgres`: pooled connections, parameterised queries, transactions, savepoints and batches. - [MySQL](https://elide.help/docs/api-mysql.md): Connect to MySQL from JavaScript and TypeScript with `elide:mysql`: the `elide:postgres` API with `?` placeholders, pooled connections and transactions. - [node:assert](https://elide.help/docs/api-node-assert.md): How Elide supports Node's `assert` and `assert/strict` modules: which assertions work, and where loose deep equality, the `Assert` class and error messages differ. - [node:async_hooks](https://elide.help/docs/api-node-async-hooks.md): How Elide supports Node's `async_hooks`: AsyncLocalStorage, AsyncResource and createHook, and where AsyncLocalStorage context does not propagate. - [node:buffer](https://elide.help/docs/api-node-buffer.md): How Elide supports Node's `Buffer` global and `node:buffer` module: one object, with `allocUnsafe` and `allocUnsafeSlow` returning zero-filled memory. - [node:child_process](https://elide.help/docs/api-node-child-process.md): How Elide supports Node's `child_process`: spawn, exec, execFile and their Sync forms, fork() with IPC between Elide scripts, and sandbox flags. - [node:console](https://elide.help/docs/api-node-console.md): How Elide supports Node's `console` module and `Console` class: the inspector-only methods are absent and `console.table` formatting differs from Node. - [node:crypto](https://elide.help/docs/api-node-crypto.md): How Elide supports Node's `crypto` module: hashing, ciphers, keys, signatures, ML-DSA and ML-KEM, its error strings, and the APIs that are not available. - [node:dgram](https://elide.help/docs/api-node-dgram.md): How Elide supports Node's `dgram` module: `udp4` and `udp6` sockets match Node, and `--allow-net` and `--deny-net` apply under the sandbox. - [node:diagnostics_channel](https://elide.help/docs/api-node-diagnostics-channel.md): How Elide supports Node's `diagnostics_channel` module: channels, tracing channels and stores, which built-in channels publish, and the `boundedChannel` addition. - [node:dns](https://elide.help/docs/api-node-dns.md): How Elide supports Node's `dns` and `dns/promises` modules: Resolver and every resolve* record type match Node, and `lookup` uses the host resolver. - [node:domain](https://elide.help/docs/api-node-domain.md): How Elide supports Node's deprecated `domain` module: create(), run() and the error event for synchronous and timer errors, and what to use instead. - [node:events](https://elide.help/docs/api-node-events.md): How Elide supports Node's `events` module: EventEmitter, once() and on() with an AbortSignal, captureRejections, and the EventEmitterAsyncResource and EventSource gaps. - [node:fs](https://elide.help/docs/api-node-fs.md): How Elide supports Node's `fs` and `fs/promises` modules: glob, cp, statfs and watch match Node, `openAsBlob` is missing, and sandbox flags limit access. - [node:http](https://elide.help/docs/api-node-http.md): How Elide supports Node's `http` and `https`: the HTTP/1.1 server and client and the HTTPS client; `https.createServer` and `node:http2` are unavailable. - [node:module](https://elide.help/docs/api-node-module.md): How Elide supports Node's `module` helpers: createRequire, isBuiltin and builtinModules, with source-map lookups stubbed and loader hooks unsupported. - [node:net](https://elide.help/docs/api-node-net.md): How Elide supports Node's `net` module: TCP and Unix-domain servers and clients, BlockList, SocketAddress and isIP match Node, with sandbox network flags. - [node:os](https://elide.help/docs/api-node-os.md): How Elide supports Node's `os` module: it matches Node, except that `cpus()` reports each core's model and speed with every `times` field set to zero. - [node:path](https://elide.help/docs/api-node-path.md): How Elide supports Node's `path` module: `node:path`, `node:path/posix` and `node:path/win32` match Node on every host, including `matchesGlob`. - [node:perf_hooks](https://elide.help/docs/api-node-perf-hooks.md): How Elide supports Node's `perf_hooks`: it shares one timeline with the Web performance globals; `constants` is empty and resource timing is absent. - [node:querystring](https://elide.help/docs/api-node-querystring.md): How Elide supports Node's legacy `querystring` module for parsing and formatting query strings: it matches Node; prefer URLSearchParams in new code. - [node:stream](https://elide.help/docs/api-node-stream.md): How Elide supports Node's `stream`, `stream/promises` and `stream/consumers`, with `stream/web` as the WHATWG stream globals and a `stream/iter` extension. - [node:test](https://elide.help/docs/api-node-test.md): How Elide supports Node's `test` runner API: tests, suites, hooks and mocks run with `elide test`; `run()`, `mock.module()` and snapshots are unavailable. - [node:timers](https://elide.help/docs/api-node-timers.md): How Elide supports Node's `timers` and `timers/promises` modules: they match Node, including scheduler; `active()` and `unenroll()` are not exposed. - [node:url](https://elide.help/docs/api-node-url.md): How Elide supports Node's `url` module: legacy parse, format and resolve, file-URL helpers, and the global URL, URLSearchParams and URLPattern classes. - [node:util](https://elide.help/docs/api-node-util.md): How Elide supports Node's `util` and `util/types`: format, inspect, promisify, parseArgs and the type predicates, and the inspect options and functions that are missing. - [node:v8](https://elide.help/docs/api-node-v8.md): How Elide supports Node's `v8` module: six exports, including heap statistics and a JSON-based `serialize` that is not V8's structured-clone format. - [node:vm](https://elide.help/docs/api-node-vm.md): How Elide supports Node's `vm` module: Script, createContext, compileFunction and runIn*Context, and where contexts, code-generation options and modules differ. - [node:worker_threads](https://elide.help/docs/api-node-worker-threads.md): How Elide supports Node's `worker_threads`: Worker, parentPort, MessageChannel and the other exports, which Worker options it reads, and other differences. - [node:zlib](https://elide.help/docs/api-node-zlib.md): How Elide supports Node's `zlib` module: Deflate, Gzip, Brotli, Zstandard and crc32 match Node, plus the `node:zlib/iter` async-iterator extension. - [Compression streams](https://elide.help/docs/api-whatwg-compression.md): How Elide supports CompressionStream and DecompressionStream: gzip, deflate and deflate-raw per the standard, plus Brotli and Zstandard formats. - [DOM abort](https://elide.help/docs/api-whatwg-dom-abort.md): How Elide supports AbortController and AbortSignal per the DOM Standard, including abort(), any() and timeout(), and signals for fetch, timers and streams. - [DOM events](https://elide.help/docs/api-whatwg-dom-events.md): How Elide supports Event, CustomEvent and EventTarget: the DOM Standard without a DOM tree, so dispatch has one target and no capture or bubble phase. - [Encoding](https://elide.help/docs/api-whatwg-encoding.md): How Elide supports TextEncoder, TextDecoder and their stream forms per the Encoding Standard, with UTF-8, UTF-16, legacy single-byte and CJK labels. - [Fetch](https://elide.help/docs/api-whatwg-fetch.md): How Elide supports fetch, Request, Response, Headers, FormData, Blob and File: supported URL schemes, no CORS or HTTP cache, the default User-Agent and response decompression. - [Messaging](https://elide.help/docs/api-wintercg-messaging.md): How Elide supports MessageChannel, MessagePort and MessageEvent: same-realm channels, which values structured clone copies, and DataCloneError cases. - [Other globals](https://elide.help/docs/api-web-misc-globals.md): How Elide supports the `DOMException` and `PromiseRejectionEvent` globals, and the `unhandledrejection` and `rejectionhandled` events on globalThis. - [Performance](https://elide.help/docs/api-wintercg-performance.md): How Elide supports `performance`, PerformanceObserver and PerformanceEntry per the User Timing and Performance Timeline specs, shared with node:perf_hooks. - [Streams](https://elide.help/docs/api-whatwg-streams.md): How Elide supports ReadableStream, WritableStream and TransformStream per the Streams Standard, including byte streams, BYOB readers and `from()`. - [Timers](https://elide.help/docs/api-html-timers.md): How Elide supports setTimeout, setInterval, setImmediate and queueMicrotask: Node Timeout objects instead of numbers, and callback order at checkpoints. - [URL](https://elide.help/docs/api-whatwg-url.md): How Elide supports the URL and URLSearchParams globals per the URL Standard, including `URL.parse()`, `URL.canParse()` and the live `searchParams` object. - [URLPattern](https://elide.help/docs/api-whatwg-urlpattern.md): How Elide supports the URLPattern global for matching URLs against patterns per the URL Pattern Standard, including `ignoreCase` and `hasRegExpGroups`. - [Web Crypto](https://elide.help/docs/api-whatwg-web-crypto.md): How Elide supports the Web Crypto API: getRandomValues, randomUUID, and the digest, key, sign, encrypt and derive algorithms of `crypto.subtle`. - [WorkerNavigator](https://elide.help/docs/api-wintercg-navigator.md): How Elide supports the `navigator` global: a WorkerNavigator whose userAgent, platform, language and other values are fixed at startup. - [JVM APIs](https://elide.help/docs/api-jvm.md): What Java and Kotlin programs run by Elide can use: the bundled JDK 25 and Kotlin 2.5 standard library, the libraries Elide puts on each classpath, and what is not available. - [Elide annotations](https://elide.help/docs/api-jvm-annotations.md): Every annotation in `dev.elide.annotations` (`dev.elide:elide-api`) for Java and Kotlin programs: targets, retention, what each one does in Elide, and how to add the package to a project. - [Bundled libraries](https://elide.help/docs/api-jvm-libraries.md): Libraries Elide bundles for Java and Kotlin programs: kotlinx coroutines and serialization, the other kotlinx libraries, Metro dependency injection, JUnit and kotlin.test, with versions, switches and examples. - [Insight for JVM programs](https://elide.help/docs/api-jvm-insight.md): Trace Java and Kotlin project runs with `elide run --insights`: JavaScript Insight scripts or a Java insight class, method filters, frames, and what differs from Insight on JavaScript. ## Reference - [CLI reference](https://elide.help/docs/cli-references.md): Every Elide command and flag: run, build, test, install, the JVM tools, setup commands, global options, instruments, exit codes and output streams. - [elide.pkl reference](https://elide.help/docs/elide-pkl-reference.md): Every block and field of Elide's elide.pkl project manifest: metadata, sources, dependencies, JVM, Kotlin, JavaScript, artifacts, testing and workspaces. - [Environment variables](https://elide.help/docs/env-variables.md): Which environment variables Elide programs see in `process.env`, the TMPDIR and ELIDE_SYS_TMP values Elide sets, loading .env files, and `--allow-env`. - [Runtime environment variables](https://elide.help/docs/runtime-env-variables.md): Environment variables that configure Elide itself, such as ELIDE_HOME, ELIDE_LOG, ELIDE_ERROR_FORMAT and ELIDE_EDITOR, plus diagnostic variables and variables from other tools that Elide honors. ## Perspectives - [Elide for Node users](https://elide.help/docs/elide-for-node.md): Switching from Node.js to Elide: what runs unchanged, which commands and APIs change, TypeScript without a compile step, benchmarks and trade-offs. - [Elide for Bun users](https://elide.help/docs/elide-for-bun.md): Switching from Bun to Elide: what runs unchanged, which commands and APIs differ, benchmarks, strengths, weaknesses and the security model. - [Elide for Deno users](https://elide.help/docs/elide-for-deno.md): Switching from Deno to Elide: what runs unchanged, how commands and permission flags map, benchmarks, strengths, weaknesses and the security model. - [Elide for Python users](https://elide.help/docs/elide-for-python.md): Switching from CPython to Elide: running Python 3.13 with the same command-line arguments, what changes, benchmarks, strengths and weaknesses. - [Elide for Java users](https://elide.help/docs/elide-for-java.md): Switching from a JDK with Maven or Gradle to Elide: running Java source directly with JDK 25, what changes in builds and tests, benchmarks and trade-offs. - [Elide for Kotlin users](https://elide.help/docs/elide-for-kotlin.md): Switching from kotlinc and Gradle to Elide: running Kotlin files directly, what changes in builds, dependencies and tests, benchmarks and trade-offs. ## Architecture - [Architecture](https://elide.help/docs/architecture.md): Deep dives into how Elide works, each traced through the code and primary sources. - [One managed heap across languages](https://elide.help/docs/architecture/gc.md): How Elide shares one managed heap and handles garbage collection across Truffle languages. - [Memory-safe semantics, optimized](https://elide.help/docs/architecture/memory-safety.md): How Elide reuses checked interpreter semantics through Truffle and Graal, compiles its Engine with Native Image, and validates native integration. - [Native libraries, linked at build time](https://elide.help/docs/architecture/native-substrate.md): How Elide uses Static JNI and Native Image substitutions to link native transports, AWS-LC and codecs into one executable shared by its guest languages. - [Unified diagnostics](https://elide.help/docs/architecture/observability.md): How Elide supports Truffle instrumentation across guest languages, and how GraalVM Native Image monitors and native profilers complement runtime diagnosis. - [Many contexts, one engine](https://elide.help/docs/architecture/threading.md): Run independent tasks in parallel, call across languages on one thread, and reuse compiled code through a shared engine. ## Performance - [Benchmarks](https://elide.help/docs/benchmarks.md): Published Elide benchmarks: hello-world startup for JavaScript and Python, and HTTP serving throughput and latency, against Node, Bun, Deno and CPython, with machine, date, command and recording. - [Performance tuning](https://elide.help/docs/performance.md): The Elide settings that change speed and memory: serving contexts, network transport, heap size and profiles, plus how to benchmark startup and serving. ## Compatibility - [Compatibility Matrix](https://elide.help/docs/compatibility.md): Elide's measured pass rates on test262, CPython, javac jtreg, WinterTC and Node-API test suites for the current release, and how to reproduce them. ## Code samples - [Code samples](https://elide.help/docs/code-samples.md): Runnable Elide samples in TypeScript, JavaScript, Java, Kotlin, Python and WebAssembly: HTTP servers, SQLite, files, streams, workers, coroutines, JSON, Maven dependencies, annotations, tests, interop and OpenTelemetry, each with its command and output. ## Changelog - [Changelog](https://elide.help/docs/changelog.md): Release notes for every Elide version, newest first: what was added, changed and fixed in each release, with links to its GitHub release. - [Releases](https://elide.help/docs/releases.md): Update Elide with `elide upgrade`, install a specific release or nightly build, and pin a project to an Elide version with `elide use` and `.elideversion`.