Repository navigation
Conversation
The browser engine carried every grammar's parse tables uncompressed, 111 MB of its 127 MB. The wasm build now packs them the way native builds do, with ruzstd standing in for libzstd, so the engine is 25 MB and only the languages a comparison uses are unpacked. Agent-Session: 429958d8-68f3-4f68-bd3b-a8371e7feb8e Agent-Session: 5eb4067a-b2f6-4508-a6dd-0471ff2c14d1 Agent-Session: c4502e33-93da-4505-ac5c-2015d3e90139
This was referenced Oct 12, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Pack the browser engine's grammar parse tables and unpack each language the first time a file in it is diffed. Stacks on #1094; merge it first.
linkingsymbol table withwasmparser.ruzstd(pure Rust) provides theZSTD_decompressthe unpacker calls.Evidence
v5.3.0...v5.4.0(217 files), cold loads, three runs: peak 507–537 MB and settled 280–283 MB, down from 696–759 MB and 374–422 MB with the previous PR alone.diffr-grammarspasses rustfmt and clippy for native and wasm32. The crate has no tests; the native path is unchanged.Merge Danger
Door: two-way; revert the commit and rebuild the engine.
Blast Radius: the browser engine's grammars. A table that unpacked wrongly would break parsing for that language only; the comparison above found none.
ZSTD_decompressnow appears among the engine's exports in the generated bindings.