An unsafe-free Rust rewrite of QuickJS, targeting semantic Feature Parity with the official QuickJS 2026-06-04 release and its ES2025 behavior.
The engine is runnable, but it is not at Feature Parity yet. Implemented slices
include binary data and Atomics, collections and weak references, Promise jobs,
Unicode behavior, and synchronous static-module graphs with default exports,
live namespace objects, and core import.meta semantics. Dynamic import,
import attributes, top-level await, and QuickJS host-populated import.meta
properties remain parity work.
The authoritative R3ed-A Test262 baseline records 68,362 full-corpus passes out of 102,037 variants (66.997%), with 68,414 eligible variants (67.048%). The 68,362 / 68,414 runnable pass rate (99.924%) is a secondary quality measure, not the headline compatibility metric.
Open the browser playground →
— it runs this Rust engine's actual WebAssembly build, not host eval. The
page reports its exact build commit, QuickJS target, and browser host policy.
Its curated Script-goal examples include a function returning 42 and the
Atomics.wait boundary. The playground is a pre-parity milestone, not a
Feature Parity claim.
Rust 1.88 or newer is required.
git clone https://github.com/pocket-stack/quickjs-oxide.git
cd quickjs-oxide
./scripts/demo-42.sh # 42
cargo run --quiet --bin qjs -- --print-result -e \
'(function (a) { return a + 1; })(41)' # 42- Current implementation status
- Pinned Test262 baseline and metric definitions
- Parity acceptance contract
- Playground build and trust boundary
- Pinned upstream release
- Test262 gate data and archived history
cargo test --locked --workspace --all-targets
./scripts/test-test262.sh --check
./scripts/test-test262.sh --focused
TEST262_WORKERS=2 ./scripts/test-test262.sh --full
./scripts/test-web-playground.sh
npm ci && npx playwright install chromium && npm run test:browser