Skip to content

Repository files navigation

quickjs-oxide

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.

Try it

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

Status

Verify

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

License

MIT. Third-party notices: NOTICE, LICENSES.

About

An independent Rust rewrite of QuickJS targeting semantic feature parity

Resources

Stars

53 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages