An independent Rust rewrite of QuickJS, targeting semantic feature parity with the official QuickJS 2026-06-04 release and its ES2025 behavior.
The unsafe-free engine is runnable but incomplete. The current R3ac milestone
adds ordinary async object-literal methods on the existing async execution
path, including QuickJS-compatible method identity, super, source, and token
timing. Oxide passes the focused 76/76 variants across 42 admitted paths;
pinned QuickJS passes all 49 candidate paths. The conservative full vector is
43,659/102,037 with no previous-pass regression. Public/private async class
methods, async generators, modules, Proxy, and broad built-in coverage remain
incomplete. Pinned QuickJS is the test oracle, never a product dependency. See
the status documents below for the R3z/R3aa/R3ab history and reproducible R3ac
evidence.
Rust 1.85 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- Implementation status and milestone ledger
- Pinned Test262 progress baseline
- Parity acceptance contract
- Pinned upstream release
cargo test --locked --workspace --all-targets
./scripts/test-test262-class-public-init.sh
./scripts/test-test262-class-private-fields.sh
./scripts/test-test262-class-private-{methods,accessors}.sh
./scripts/test-test262-class-generator-methods.sh
./scripts/test-test262-class-private-generator-methods.sh
./scripts/test-test262-class-sync-matrix.sh
./scripts/test-test262-promise-{race-try-with-resolvers,finally,all,all-settled,any}.sh
./scripts/test-test262-regexp-builtins.sh
./scripts/test-test262-generator-destructuring.sh
./scripts/test-test262-iterator-helpers.sh
./scripts/test-test262-iterator-sequencing.sh
./scripts/test-test262-async-function-core.sh
./scripts/test-test262-async-arrow-core.sh
./scripts/test-test262-async-object-method-core.sh
./scripts/test-r3z-async-function-core-oracle.sh --oxide ./target/debug/qjsMIT. Third-party notices are retained in NOTICE and LICENSES.