ALPHA.2 288 / 288 DIFFERENTIAL SCENARIOS 4 / 4 BENCHMARK WINS See the measurements

Compatibility measured · speed measured

Same tests.
Different engine.

Run your JavaScript and TypeScript tests with Jest-style assertions, mocks, snapshots, and configuration. Rust coordinates the run; Node executes your code. Alpha.2 beats Jest on all four controlled benchmark workloads below.

Alpha.2 · 4 controlled benchmark wins · 288 passing scenarios · raw samples included

COMPATIBILITY TARGET RJ / 001
$ npx jest
$ npx rjest
TEST CHANGES 0
CONFIG CHANGES 0
STATUS ALPHA.2

The destination—not a claim that every Jest project is there today.

REACT TYPE­SCRIPT JSDOM SNAP­SHOTS ESM MONO­REPOS FAKE TIMERS

Why rebuild it in Rust?

Rust earns
its place.

On the September 18 Apple M2 run, alpha.2 beats pinned Jest on all four workloads. Many-file execution now reuses one Node host with a fresh isolate per file. Compare your own suite too.

01 / COLD START RJEST WIN
2.07×

faster end-to-end startup

JEST499.6 ms
RJEST241.8 ms
02 / ASSERTIONS RJEST WIN
2.95×

faster across 50,000 assertions

JEST2.87 s
RJEST974.7 ms
03 / DISCOVERY RJEST WIN
2.95×

faster listing 1,500 test files

JEST550.8 ms
RJEST186.8 ms
04 / MANY FILES RJEST WIN
1.39×

faster across 48 files, 4 workers

JEST1.67 s
RJEST1.20 s
2026-09-18 / APPLE M2 / 16 GIB NODE 25.9.0 / JEST 30.5.0 / ALPHA.2 2 WARM-UPS + 10 MEASURED PAIRS CACHES OFF PARITY PREFLIGHT
Audit every sample

Download raw timing samples · Full method and variance · Earlier alpha.1 results
Controlled workloads on one machine; results will vary with your project.

Evidence before adjectives

Measured against
the real thing.

Official Jest is the oracle. Every fixed disagreement becomes a permanent differential fixture. Existing open-source suites add the pressure that synthetic tests cannot.

VERSIONED DIFFERENTIAL MATRIX 288 / 288
100% OF BOUNDED MATRIX
PASSING ONE CELL = ONE SCENARIO GENERATED BY TESTS, NOT ESTIMATED
01

APOLLO CLIENT

9,974

test identities compared across 563 suites

99.940% frozen-status parity · zero Rjest-only failures
02

STYLED-COMPONENTS

1,465

passing tests, plus 749 matching snapshots

59 / 59 suites on the unchanged web project
03

REACT NAVIGATION

1,303

matching identities in a two-project monorepo

Exact statuses, including the same 2 upstream failures
25

CORPUS REPORTS

25

pinned project and package workloads

React · RN · TS · npm · pnpm · Yarn · PnP
Audit every corpus report

Historical pinned reports; these projects were not all rerun for alpha.2.

Keep the ecosystem

Jest-shaped where
it matters.

Rjest reaches into the existing Jest ecosystem instead of asking mature projects to abandon their transforms, environments, snapshots, and module conventions.

01

Tests & expectations

Nested suites, hooks, async and callback tests, retries, focus, skips, custom matchers, asymmetric values, promise chains, return-history assertions, argument-routed mocks, spies, teardown state, and lifecycle resets.

expect(result).resolves.toMatchSnapshot()
02

Snapshots

External and inline snapshots, serializers, property matchers, source-map writes, update mode, and Prettier 2/3 formatting.

03

Modern + legacy timers

Covered scheduling in Node and JSDOM, including manual, next-async, and interval tick modes.

04

Transforms & ESM

Babel, ts-jest, JS, JSX, TS, TSX, native ESM, top-level await, async transformers, module mapping, and conditional exports.

05

Projects at scale

Executable configs, Circus selection, presets, multi-project matrices, display filters, global setup/teardown, result processors, sharding, bail, failed-test history, explicit related-test selection, native all/changed-test watch, interactive interruption, live custom reporters, resolvers, sequencers, pnpm, and Yarn Plug'n'Play.

06

Babel + V8 coverage

Babel instrumentation and precise V8 ranges, source maps, cross-worker merging, text, JSON, LCOV/HTML, Clover, collection globs, ignores, and Jest-compatible grouped thresholds.

A deliberate hybrid

Rust controls.
Node executes.

Rust handles discovery, scheduling, cancellation, and result aggregation. Multi-file batches reuse one Node host with a fresh worker-thread isolate per file. Globals, module caches, environment changes, and timers stay separate. Babel and snapshot formatting tools initialize when needed.

Read the architecture Read the benchmark policy
01 · RUST Plan

Config · discover · select · schedule

02 · NODE Run

Fresh isolate per file · one reused host

03 · RUST Report

Results · snapshots · coverage

Bring a real suite

Try your existing suite.

Install alpha.2 from the release below. Requires Node.js 22.18 or newer and rustup; installation builds the native coordinator with Rust 1.95. Compare discovery, then run serially and in parallel with official Jest.

1 Install alpha.2 2 Compare discovery 3 Run the suite
Alpha.2 release & checksums
INSTALL / ALPHA.2
# Install alpha.2 from GitHub
$ npm install --save-dev https://github.com/OthmaneBlial/Rjest/releases/download/v0.1.0-alpha.2/rjest-rust-runner-0.1.0-alpha.2.tgz

# Compare discovered tests
$ npx jest --listTests
$ npx rjest --listTests

# Compare serial results, then run in parallel
$ npx jest --runInBand
$ npx rjest --runInBand
$ npx rjest --maxWorkers=4

Alpha means alpha

The remaining
work matters.

The approximate 91% readiness view is directional, not an automated Jest API percentage. The measured claim remains 288/288 of the current bounded matrix.

  • 01 Watch plugins and terminal polish plus non-Git SCM support remain open. Core controls and active-worker interruption are tested against Jest.
  • 02 Persistent discovery/transform caches and reuse of test isolates remain open. Alpha.2 reuses the Node host; every file still gets a fresh isolate.
  • 03 Custom VM identity, specialized reporter built-ins, custom Istanbul reporters, cross-project provider combinations, and long-tail resolvers need broader proof.
  • 04 Multi-file threads share a PID and native process resources. Main-thread-only APIs such as process.chdir are unavailable; a native crash or killing the host PID can stop the batch. Single-file runs use a separate process.
  • 05 Unlisted Jest behavior needs comparison with your project. Test execution uses your permissions and is not a security sandbox.
Read the honest project status