Elide runs Node programs, node:* modules and npm packages; this page lists what changes when you switch.
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 }).
See JavaScript and TypeScript, module status in the API Overview, and suite results in the Compatibility Matrix.
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.
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.
Weaknesses
- Node-API compatibility is 86.8% and WinterTC 95.9% on their test suites.
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.