Runtime Manual/Getting Started/Overview

Overview

A JavaScript/TypeScript runtime in Rust and V8. One binary: bee.

What is Beejs?

Beejs is a JavaScript and TypeScript runtime built with Rust and Google V8. It ships as a single executable named bee.

It is built for agent tools and sandboxed scripts: run TypeScript without tsc, run Jest-style tests, host MCP/JSON-RPC tools, and do in-process tensors via bee:ai. It is not a drop-in Node.js replacement.

Use Beejs when you want:

  • One binary for run / eval / test / repl / mcp
  • TypeScript without tsc (oxc transpile-only)
  • Capability sandbox for agent tools (--sandbox, --seed, --freeze-time)
  • In-process tensors via bee:ai (no Python sidecar)

Closest cousins: Deno (V8 + Rust, permissioned) and Bun (all-in-one CLI). Beejs keeps V8, adds an agent/MCP host, and labels every command Stable / Preview / Experimental.


Architecture

code
+-------------------------------------------------------------------+
|  Application  —  JS / TS  ·  tests  ·  MCP tools  ·  HTTP fetch   |
+-------------------------------------------------------------------+
|  Runtime APIs                                                     |
|    Node compat (fs, http, buffer, …)                              |
|    Web APIs (fetch, Streams, URL, Web Crypto)                     |
|    bee:ai (Tensor, LLM, AgentPipeline)                            |
+-------------------------------------------------------------------+
|  Engine  —  V8 isolate  ·  oxc TS/TSX  ·  Tokio I/O               |
+-------------------------------------------------------------------+
|  Host  —  capability broker  ·  snapshots  ·  Wasm backing stores |
+-------------------------------------------------------------------+

What is in v1.16.0

AreaStatusNotes
bee run / eval / replStableJS always; TS/TSX via oxc (Preview contract)
bee testStableJest-style describe / test / expect
bee:aiStableTensor / LLM / AgentPipeline in-process
--sandbox / MCP / sessionPreviewDefault-deny I/O, seed, freeze-time
bee servePreviewWinterCG fetch handler; --https is rustls HTTP/1.1
bee bundle / bee compilePreviewoxc graph bundle; SEA trailer BEE_STANDALONE
bee:wasmPreviewZero-copy Memory / ArrayBuffer
Package manager (init/install/x)ExperimentalLightweight; not npm-complete
Node API surfacePreviewPer-API. Conformance 5.0 is 55/55

The only user-facing capability map is Current Scope in the repo. Historical stage reports are not product promises.


Comparison

Beejs 1.16.0Node.jsBunDeno
EngineV8 + RustV8 + C++JSC + ZigV8 + Rust
TypeScriptoxc, transpile-onlyloaders / tscbuilt-inbuilt-in
Secure defaultsopt-in --sandboxnonenonepermission flags
Node APIincremental Previewnativedrop-in goalcompat layer
Test runnerbuilt-in bee testexternalbun testdeno test
Native AIbee:ai
Conformance scorecard55/55 fixturesnativehighhigh

Coverage is per-API, not “Node compatible.” Modules that exist today include fs, path, os, url, buffer, events, stream, crypto, http, http2, net, child_process (execSync / spawnSync), zlib, util, worker_threads. Web: fetch, Streams, Web Crypto, URL, Worker.


Performance

Public numbers belong in the repo benchmarks/ directory with hardware, command, and a correctness check. On Apple M2 Max (2026-09-16, Beejs vs Node v22.22.3 vs Bun 1.4.1):

  • URL + URLSearchParams (20k): Beejs 7.28 ms, Node 12.54 ms
  • fetch 100 sequential GETs: Beejs 6.51 ms, Node 17.00 ms
  • ReadableStream 5k chunks: Beejs 0.92 ms, Node 1.16 ms
  • Express 5.x: Beejs ~68k req/s, Node ~19k req/s
  • CLI eval 1+1 mean: Beejs 18.47 ms, Node 27.53 ms, Bun 8.03 ms

Those are one machine, one commit. They are not SLAs. Bun still wins several microbenches and cold start.


Next

  1. Install
  2. Quick start
  3. CLI reference