Elide runs JavaScript and TypeScript with Node APIs and npm packages. Check your application’s modules and framework before switching.
Check your application
For an HTTP app, start with framework compatibility: Hono has a runnable example;
Express 5 has body-middleware limitations; Fastify 5 imports an unavailable module. Check the
API Overview for other node:* modules your app imports.
The Compatibility Matrix reports API test-suite results. Run your application’s tests and exercise its request handlers to check the dependencies and code paths you use.
Run the same code
elide app.js # or: elide run app.js
elide app.ts # no compile step, no tsconfig.json
elide install --ecosystems=npm # dependencies from package.json
elide test # node:test files
- Built-ins load with or without the
node:prefix. - CommonJS and ES modules both work.
http.createServerserves as in Node, as does a module that default-exports afetchhandler or callsElide.serve({ fetch }).
For a complete first example, follow JavaScript and TypeScript. For a server, follow
Build an HTTP service. If an installed package cannot be imported, see
Module not found after elide install.
What changes
| Node | Elide |
|---|---|
node app.js | elide app.js |
npm install | elide install --ecosystems=; plain elide install skips npm |
package-lock.json | aube-lock.yaml |
npm run build | elide run build |
npx tool | elide run tool for a tool in node_modules/.bin; no download-and-run |
node --test | elide test |
node --inspect app.js | elide run --debugger= |
node --watch app.js | No equivalent |
node --env-file= | Call process.loadEnvFile() in code |
node --permission --allow-fs-read= | elide --allow-read=; see Sandbox and Limits |
node:worker_threads | Same module; new Worker honors only workerData, eval, transferList and env |
node:sqlite DatabaseSync | Database from elide:sqlite; see SQLite |
Elide does not set NODE_ENV.
Weaknesses
node:http2,node:cluster,node:inspectorandnode:wasithrowERR_UNKNOWN_BUILTIN_MODULE.https.createServerthrowsERR_HTTPS_SERVER_UNSUPPORTED; terminate TLS in front ofhttp.createServer.- No
WebSocketglobal. - No bundler:
elide web buildtransforms each file and keeps its imports. - No macOS Intel build; macOS releases are Apple Silicon only.
Benchmarks
Hello-world startup with hyperfine -N -w 10 -r 100 on a 24-core AMD Ryzen Threadripper PRO 9965WX Linux workstation:
| Runtime | Command | Mean |
|---|---|---|
| Node | node hello.js | 11.70 ± 0.90 ms |
| Elide | elide run hello.js | 1.43 ± 0.06 ms |
| Bun | bun hello.js | 1.63 ± 0.18 ms |
| Deno | deno run hello.js | 6.31 ± 0.30 ms |
Elide’s measured mean is lower than Bun’s in this recording. In the separate non-pipelined HTTP comparison, Elide served 635,510 requests/s and Node 24.22.0 LTS served 123,519 requests/s with the same load and CPU budget. See HTTP serving for the settings, latency, and raw reports.
Versions, setup, and recordings: Benchmarks.
Strengths
- Runs
.ts,.mtsand.ctsfiles directly. - Scopes network access by host and subprocesses by command:
--allow-net=api.example.com,--allow-run=git. - Limits workers, open files, heap and run time:
--limit=workers=4,--limit=fds=128,--max-mem=512m,--timeout=30s. - Includes SQLite, PostgreSQL and MySQL drivers as
elide:sqlite,elide:postgresandelide:mysql.