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
17,159 B → 16,736 B
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.
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.
Zero runtime dependencies
Drop MobX 7 into
a smaller box.
npm install @itslil/mobx