marked 18.0.10 · LilScript port · @itslil/marked
Markdown,
compiled.
This is not marked. It is the marked@18.0.10 parse path —
parse, parseInline, setOptions — rewritten in
LilScript. No use(), Hooks, or Tokenizer subclassing: LilScript cannot
override methods, and it is not trying to become JavaScript. Every number on this page
compares that same official parse path, then Oxc and Terser, mangling on and off.
The npm file is the Brotli-scored compile. gzip and raw each have their own compile.
npm install @itslil/marked
Official rows are one parse-path file, then Oxc or Terser, measured three ways.
LilScript searches a different artifact for each cost_model, so the gzip
and raw numbers come from those compiles — not from compressing the Brotli npm file.
Brotli is still the headline. The published official marked package is not a lane.
Speed is time spent parsing in Chromium. HTML is checked byte-for-byte
against that same official parse path before any number is reported.
Measured in Chromium
Playwright,
not inferred.
HTML must match the official parse path of marked@18.0.10. The document suite is the GFM+CommonMark
corpus repeated 32 times. The loop suite parses all 660 cases forty times. Ratio is lane / official parse path (lower is faster).
| Lane | 32× document | 660-case ×40 | document speed vs official parse path |
|---|
The compiled runtime, in the browser
Live
markdown.
Left is the editor. Right is HTML from @itslil/marked or the official
marked@18.0.10 parse path — the same Lexer/Parser/Renderer cut used for size.
Marked does not sanitize HTML. Do not paste untrusted markdown.
The receipts
Raw, gzip,
and Brotli.
Official 18.0.10 Lexer/Parser/Tokenizer/Renderer, then Oxc and Terser with mangling on and off.
LilScript is not post-minified. Each codec below uses the LilScript compile scored for that
codec (cost_model = raw | gzip | brotli). The npm file is the Brotli compile.
Closed LilScript is Brotli with extern_fields = false.
Brotli-11
The wire number. LilScript row is cost_model = brotli, the npm file.
| Lane | Brotli-11 | vs Oxc |
|---|
gzip-9
LilScript row is a separate compile: cost_model = gzip.
| Lane | gzip-9 | vs Oxc |
|---|
Raw
LilScript row is a separate compile: cost_model = raw.
| Lane | Raw | vs Oxc |
|---|
All three, matched compiles
Official rows are one file measured three ways. The LilScript library row takes raw from the raw compile, gzip from the gzip compile, and Brotli from the Brotli compile.
| Lane | Raw | gzip-9 | Brotli-11 | Brotli vs Oxc |
|---|
Why this surface. LilScript cannot override methods, so this port has no
use() / Hooks / walkTokens — and there is no plan to grow the language into
JavaScript to get them. Comparing against published marked.esm.js would put
the extension system on one side only. The fair fight is the 18.0.10 parse path, then the
same Oxc and Terser work the JS ecosystem actually ships. Closed LilScript is the other
honest comparison: no JavaScript options object, so those property names mangle.
Zero runtime dependencies
Install the
current port.
npm install @itslil/marked