MobX 7.0.0 · LilScript port · @itslil/mobx

MobX,
compiled.

The mobx@7.0.0 public API, rewritten in LilScript. Official MobX tests pass. The size gate is current Vite of official unminified ESM — not official’s own DEV-stripped production.min. Brotli is 16,736 B versus Vite 8 Oxc 17,159 B and Vite+Terser 17,610 B.

npm install @itslil/mobx
Brotli-11 vs Vite 8 Oxc of official ESM 0.975×

17,159 B → 16,736 B

769official tests passed
8/12suites ≤ 1.05×
0.98×retained memory
0.95×Brotli vs Vite+Terser

Verified 2026-08-19, Node v24.11.1, lilscript-codec gzip-9 / Brotli-11. Vite 8 Oxc is the current Vite client minifier. Official production.min is a different, DEV-stripped compile (12,937 B Brotli) and is not the Vite lane. Throughput is @itslil/mobx / official, NODE_ENV=production.

observable computed autorun reaction action flow when makeAutoObservable map set intercept spy

Measured vs mobx@7.0.0

Throughput,
not inferred.

Compiled realistic-performance-first against official mobx@7.0.0. Arrays, diamonds, reactions, and batching are faster. Four suites miss the 1.05× gate on this machine: object-proxy, decorators, map, and set. Checksums match on every suite. Official MobX tests: 769 passed, 0 failed.

Suite mobx@7.0.0 @itslil/mobx Ratio

The compiled runtime, in the browser

Five small
apps.

These load the same production ESM that npm publishes. Boxes, arrays, maps, flow/when, intercept, observe.

The receipts

Raw, gzip,
and Brotli.

The size gate is current Vite of official unminified mobx.esm.js. Vite 8 Oxc is 17,159 B Brotli; Vite+Terser is 17,610 B. This package is 16,736 B. Official production.min (12,937 B) is shown as a diagnostic — it is DEV-stripped at compile, not a Vite minify of the published ESM.

Lane Raw gzip-9 Brotli-11 vs Vite 8 Oxc

Why this wins Vite and still loses official min. Same 78 exports. Vite minifies the published unminified ESM, which still carries development paths. Official production.min strips those at compile. A later size-first compile was smaller on disk but did not load. The shipped file is the last runtime that passes the official suite. Official tests: 769 passed, 0 failed.

README ↗

Zero runtime dependencies

Drop MobX 7 into
a smaller box.

npm install @itslil/mobx