Skip to content

bench: update @tuananh/sax-parser to 1.6 and txml to 6, refresh numbers - #24

Merged
evoactivity merged 2 commits into
mainfrom
bench/update-comparison-libs
Jul 22, 2026
Merged

bench: update @tuananh/sax-parser to 1.6 and txml to 6, refresh numbers#24
evoactivity merged 2 commits into
mainfrom
bench/update-comparison-libs

Conversation

@evoactivity

Copy link
Copy Markdown
Owner

What

Updates the two comparison libraries that shipped major releases and refreshes BENCHMARKS.md with numbers against them (Node 24, same hardware as all previous published runs).

  • @tuananh/sax-parser ^1.2.0^1.6.0
  • txml ^5.2.1^6.0.0 — v6 removed the txml/dist/txml.js deep import in favour of the txml/txml export and renamed tNodeTNode, so the three bench files that import it are migrated

Headline changes

  • @tuananh/sax-parser 1.6 has largely closed its chunked-streaming gap. It now takes both EPG columns in the streaming table (19,238 and 18,062 op/s), and its 64 B throughput exceeds its 256 B throughput, so per-write bridge cost is effectively gone. Eksml holds RSS (3.7x), POM, and attr-heavy. In tokenization it is now clear second on EPG/POM with Eksml's lead as thin as 1.05x on the 64 B stress.
  • Serialization: Eksml now leads every fixture with and without validation. Previous table had tXml edging small and EPG at default validation; 0.2.0's writer gains flipped both.
  • DOM parsing unchanged in shape: Eksml 1.7-1.9x ahead of txml 6 everywhere it can parse.

Still true

  • txml 6 still crashes on the RSS fixture: it hardcodes <link> as an HTML void element and RSS channels require <link>, so the -- cells and crash notes stay.
  • The tokenize arity policing from a3c7528 already covers 1.6's zero-arity fast path; the note now documents it explicitly.

844 tests pass. All benches run clean (32/32 suites).

txml 6 removed the txml/dist/txml.js deep import in favour of the
txml/txml export and renamed tNode to TNode.

Headline changes in BENCHMARKS.md: @tuananh/sax-parser 1.6 now takes
both EPG columns in chunked streaming (its 64 B throughput exceeds its
256 B throughput, so per-write bridge cost is effectively gone) and is
clear second in tokenization on EPG and POM. Eksml still leads DOM
parsing, tokenization, serialization, and the RSS, POM, and attr-heavy
streaming columns.
@evoactivity evoactivity added the documentation Improvements or additions to documentation label Jul 22, 2026
Versions live in package.json, listing them here just churns on every
dep bump.
@evoactivity
evoactivity merged commit 71f8494 into main Jul 22, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant