Unescape HTML leaderboards

Top 20 submissions by each measure. Only submissions that passed the compliance suite are ranked. Each person can hold up to 3 places per board, or 5 on Fastest benchmark, so different techniques and languages can rank side by side; resubmitting the same Wasm counts once.

Showing only submissions that earned “No SIMD”. Select it again to show everyone.

Size against speed

Gzipped Wasm size against median benchmark time, coloured by the AI models each submitter declared.

9 KiB 19.7 KiB 10 ms 100 ms Gzipped Wasm size Median benchmark time patrickgwsmith · Zig · 13.6 KiB gzipped · 10.2 ms · Opus 5.5 patrickgwsmith · C · 13.6 KiB gzipped · 11.92 ms · Opus 5.5 patrickgwsmith · Rust · 18.5 KiB gzipped · 14.3 ms · qwen3.8-27b:8bit patrickgwsmith · Zig · 18.7 KiB gzipped · 15.6 ms · qwen3.8-27b:8bit patrickgwsmith · Odin · 18.7 KiB gzipped · 16.94 ms · Opus 5.5 patrickgwsmith · Rust · 14 KiB gzipped · 18.27 ms · Opus 5.5 patrickgwsmith · Nim · 19.2 KiB gzipped · 19.43 ms · qwen3.8-27b:8bit patrickgwsmith · C++ · 18.9 KiB gzipped · 19.76 ms · qwen3.8-27b:8bit patrickgwsmith · Zig · 18.6 KiB gzipped · 19.93 ms · qwen3.8-27b:8bit patrickgwsmith · C · 18.9 KiB gzipped · 20.32 ms · qwen3.8-27b:8bit patrickgwsmith · Zig · 19 KiB gzipped · 21.09 ms · qwen3.8-27b:8bit patrickgwsmith · Zig · 18.9 KiB gzipped · 24.23 ms · qwen3.8-27b:8bit patrickgwsmith · Zig · 15 KiB gzipped · 34.32 ms · qwen3.8-27b:8bit patrickgwsmith · C++ · 15.1 KiB gzipped · 34.73 ms · qwen3.8-27b:8bit patrickgwsmith · Rust · 15.7 KiB gzipped · 41.63 ms · qwen3.8-27b:8bit patrickgwsmith · Nim · 15.1 KiB gzipped · 41.78 ms · qwen3.8-27b:8bit patrickgwsmith · C · 11.1 KiB gzipped · 167.33 ms · Opus 5.5 patrickgwsmith · C · 10.3 KiB gzipped · 179.71 ms · Opus 5.5 patrickgwsmith · Odin · 10.5 KiB gzipped · 319.19 ms · Opus 5.5 patrickgwsmith · Rust · 10.3 KiB gzipped · 326.15 ms · Opus 5.5 patrickgwsmith · Zig · 10.2 KiB gzipped · 383.36 ms · Opus 5.5 patrickgwsmith · C · 9.2 KiB gzipped · 2.3 ms · Fable 5.2 patrickgwsmith · Rust · 9.4 KiB gzipped · 2.63 ms · Fable 5.2 patrickgwsmith · Zig · 9.3 KiB gzipped · 2.65 ms · Fable 5.2 patrickgwsmith · Odin · 9.5 KiB gzipped · 2.8 ms · Fable 5.2
Fable 5.2: 4 of 25. 25 passing submissions, each distinct Wasm once, on log scales. Lower left is smaller and faster; the dashed line joins those nothing else beats on both, labelled with language and AI model.

Times 25 of these in your browser, one at a time.

Speed, smallest first

Every benchmarked submission in order of gzipped Wasm size, to see whether getting smaller costs speed.

0 100 ms 200 ms 300 ms 400 ms 1d840c50 · patrickgwsmith · C · Fable 5.2 · 9.2 KiB gzipped · 48 memory pages · 2.3 ms 1d840c50 · 9.2 KiB e4ac034e · patrickgwsmith · Zig · Fable 5.2 · 9.3 KiB gzipped · 48 memory pages · 2.65 ms e4ac034e · 9.3 KiB 3c8c291b · patrickgwsmith · Rust · Fable 5.2 · 9.4 KiB gzipped · 48 memory pages · 2.63 ms 3c8c291b · 9.4 KiB 550c2bd5 · patrickgwsmith · Odin · Fable 5.2 · 9.5 KiB gzipped · 48 memory pages · 2.8 ms 550c2bd5 · 9.5 KiB 16412f6a · patrickgwsmith · Zig · Opus 5.5 · 10.2 KiB gzipped · 2 memory pages · 383.36 ms 16412f6a · 10.2 KiB 110719b7 · patrickgwsmith · Rust · Opus 5.5 · 10.3 KiB gzipped · 2 memory pages · 326.15 ms 110719b7 · 10.3 KiB ba59db43 · patrickgwsmith · C · Opus 5.5 · 10.3 KiB gzipped · 2 memory pages · 179.71 ms ba59db43 · 10.3 KiB afca011f · patrickgwsmith · Odin · Opus 5.5 · 10.5 KiB gzipped · 2 memory pages · 319.19 ms afca011f · 10.5 KiB 68ad031d · patrickgwsmith · C · Opus 5.5 · 11.1 KiB gzipped · 2 memory pages · 167.33 ms 68ad031d · 11.1 KiB c8f5ef2c · patrickgwsmith · C · Opus 5.5 · 13.6 KiB gzipped · 48 memory pages · 11.92 ms c8f5ef2c · 13.6 KiB 9a29dd86 · patrickgwsmith · Zig · Opus 5.5 · 13.6 KiB gzipped · 48 memory pages · 10.2 ms 9a29dd86 · 13.6 KiB a7f4b2e2 · patrickgwsmith · Rust · Opus 5.5 · 14 KiB gzipped · 48 memory pages · 18.27 ms a7f4b2e2 · 14 KiB bf16d62f · patrickgwsmith · Zig · qwen3.8-27b:8bit · 15 KiB gzipped · 20 memory pages · 34.32 ms bf16d62f · 15 KiB 66290d95 · patrickgwsmith · C++ · qwen3.8-27b:8bit · 15.1 KiB gzipped · 20 memory pages · 34.73 ms 66290d95 · 15.1 KiB 3fb3d6e2 · patrickgwsmith · Nim · qwen3.8-27b:8bit · 15.1 KiB gzipped · 20 memory pages · 41.78 ms 3fb3d6e2 · 15.1 KiB 2d2da683 · patrickgwsmith · Rust · qwen3.8-27b:8bit · 15.7 KiB gzipped · 20 memory pages · 41.63 ms 2d2da683 · 15.7 KiB fdf57de0 · patrickgwsmith · Rust · qwen3.8-27b:8bit · 18.5 KiB gzipped · 20 memory pages · 14.3 ms fdf57de0 · 18.5 KiB 7414a80b · patrickgwsmith · Zig · qwen3.8-27b:8bit · 18.6 KiB gzipped · 36 memory pages · 19.93 ms 7414a80b · 18.6 KiB 02381cac · patrickgwsmith · Zig · qwen3.8-27b:8bit · 18.7 KiB gzipped · 20 memory pages · 15.6 ms 02381cac · 18.7 KiB 7778b362 · patrickgwsmith · Odin · Opus 5.5 · 18.7 KiB gzipped · 48 memory pages · 16.94 ms 7778b362 · 18.7 KiB 81174e02 · patrickgwsmith · C++ · qwen3.8-27b:8bit · 18.9 KiB gzipped · 20 memory pages · 19.76 ms 81174e02 · 18.9 KiB 697fb2f5 · patrickgwsmith · C · qwen3.8-27b:8bit · 18.9 KiB gzipped · 20 memory pages · 20.32 ms 697fb2f5 · 18.9 KiB fd2adc5b · patrickgwsmith · Zig · qwen3.8-27b:8bit · 18.9 KiB gzipped · 36 memory pages · 24.23 ms fd2adc5b · 18.9 KiB 6c530173 · patrickgwsmith · Zig · qwen3.8-27b:8bit · 19 KiB gzipped · 20 memory pages · 21.09 ms 6c530173 · 19 KiB 2a0f2362 · patrickgwsmith · Nim · qwen3.8-27b:8bit · 19.2 KiB gzipped · 20 memory pages · 19.43 ms 2a0f2362 · 19.2 KiB 0 10 20 30 40 50 Memory (64 KiB pages) Median benchmark time
25 passing submissions, smallest gzipped Wasm on the left, bar height the median benchmark time from zero. The 1 solid bars are each faster than everything smaller; muted bars have a smaller, faster submission to their left. Hollow dots are each Wasm's memory, in 64 KiB pages on the right-hand axis.

Times 25 of these in your browser, one at a time.

Do the machines agree?

The machines disagree on which is fastest

  • Server
  • Server on the runner corpus
  • Apple M1 · Node.js (V8)
  • Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz · Node.js (V8)
  • Chrome (visitors)
Time relative to the fastest submission (1×), on a log scale; further right is slower. Each machine's times are scaled for its overall speed so they line up. Hollow dots are visitors' browsers, which don't affect rankings.

By language

Fastest by language

Each language's fastest submission by median benchmark time, with its gzipped size and whether it uses SIMD.

  1. C 2.3 ms 9.2 KiB gzipped
  2. Rust 2.63 ms 9.4 KiB gzipped
  3. Zig 2.65 ms 9.3 KiB gzipped
  4. Odin 2.8 ms 9.5 KiB gzipped
  5. Nim 19.43 ms 19.2 KiB gzipped
  6. C++ 19.76 ms 18.9 KiB gzipped

Smallest download by language

Each language's smallest gzipped Wasm, which sets download time, with its median benchmark time. Open a language to see its next smallest submissions.

  1. C 9.2 KiB 2.3 ms
    1. 1. patrickgwsmith 9.2 KiB 2.3 ms
    2. 2. patrickgwsmith 10.3 KiB 179.71 ms
    3. 3. patrickgwsmith 11.1 KiB 167.33 ms
    4. 4. patrickgwsmith 13.6 KiB 11.92 ms
    5. 5. patrickgwsmith 18.9 KiB 20.32 ms
  2. Zig 9.3 KiB 2.65 ms
    1. 1. patrickgwsmith 9.3 KiB 2.65 ms
    2. 2. patrickgwsmith 10.2 KiB 383.36 ms
    3. 3. patrickgwsmith 13.6 KiB 10.2 ms
    4. 4. patrickgwsmith 15 KiB 34.32 ms
    5. 5. patrickgwsmith 18.6 KiB 19.93 ms
    6. 6. patrickgwsmith 18.7 KiB 15.6 ms
  3. Rust 9.4 KiB 2.63 ms
    1. 1. patrickgwsmith 9.4 KiB 2.63 ms
    2. 2. patrickgwsmith 10.3 KiB 326.15 ms
    3. 3. patrickgwsmith 14 KiB 18.27 ms
    4. 4. patrickgwsmith 15.7 KiB 41.63 ms
    5. 5. patrickgwsmith 18.5 KiB 14.3 ms
  4. Odin 9.5 KiB 2.8 ms
    1. 1. patrickgwsmith 9.5 KiB 2.8 ms
    2. 2. patrickgwsmith 10.5 KiB 319.19 ms
    3. 3. patrickgwsmith 18.7 KiB 16.94 ms
  5. C++ 15.1 KiB 34.73 ms
    1. 1. patrickgwsmith 15.1 KiB 34.73 ms
    2. 2. patrickgwsmith 18.9 KiB 19.76 ms
  6. Nim 15.1 KiB 41.78 ms
    1. 1. patrickgwsmith 15.1 KiB 41.78 ms
    2. 2. patrickgwsmith 19.2 KiB 19.43 ms
    3. 3. patrickgwsmith 19.2 KiB not benchmarked

Fastest benchmark

Time to render the whole shuffled corpus once after warmup, timed in loops inside Wasm, with input copies subtracted. The server, browsers and other machines run the same harnessed Wasm the same way. Excludes setup and output validation. The corpus is generated (3291 generated inputs, 1.88 MiB in all, up to 71.9 KiB each): labels, prose, escaped HTML, URLs and dense references, with every size band counting for a similar share of the time. It is separate from the compliance suite and no input or output is larger than the suite's largest. The server ranks on its own corpus, which never leaves it; browsers run a public one and benchmark runners a third, all from the same generator with different seeds. They are rotated from time to time, so tune for the kind of input, not the cases.

  1. 1.
    patrickgwsmith
    Language
    C
    Compiler
    zig cc 0.15.2 (Clang 20.1.2)
    AI
    Fable 5.2
    2.3 ms · 854 MB/s
  2. 2.
    patrickgwsmith
    Language
    Rust
    Compiler
    rustc 1.99.0
    AI
    Fable 5.2
    2.63 ms · 748 MB/s
  3. 3.
    patrickgwsmith
    Language
    Zig
    Compiler
    zig 0.15.2
    AI
    Fable 5.2
    2.65 ms · 742 MB/s
  4. 4.
    patrickgwsmith
    Language
    Odin
    Compiler
    odin dev-2026-11:9a6991685
    AI
    Fable 5.2
    2.8 ms · 702 MB/s
  5. 5.
    patrickgwsmith
    Language
    Zig
    Compiler
    zig 0.15.2
    AI
    Opus 5.5
    10.2 ms · 193 MB/s

How does your machine compare?

Rerun the benchmark for the top 5 in your browser, with the same shuffled passes and warmup as the server. See whether your machine puts them in the same order, and whether the gaps between them match. Results are saved under your GitHub account.

Fastest suite

Total time to run the compliance fixture suite.

  1. 1.
    patrickgwsmith
    Language
    Nim
    Compiler
    Nim 2.4.0 (C backend) + Clang 20.1.2 + wasm-ld 23.1.4
    AI
    qwen3.8-27b:8bit
    4908.47 ms
  2. 2.
    patrickgwsmith
    Language
    C++
    Compiler
    zig c++ 0.15.2 (bundled clang)
    AI
    qwen3.8-27b:8bit
    4920.45 ms
  3. 3.
    patrickgwsmith
    Language
    Zig
    Compiler
    zig 0.15.2
    AI
    qwen3.8-27b:8bit
    5175.79 ms

How does your machine compare?

Rerun the compliance suite for the top 3 in your browser, with a fresh instance per case as on the server. See whether your machine puts them in the same order, and whether the gaps between them match. Results are saved under your GitHub account.

Least memory

  1. 1.
    patrickgwsmith
    Language
    C
    Compiler
    zig cc 0.15.2 (Clang 20.1.2)
    AI
    Opus 5.5
    2 pages
  2. 2.
    patrickgwsmith
    Language
    Rust
    Compiler
    rustc 1.93.0
    AI
    Opus 5.5
    2 pages
  3. 3.
    patrickgwsmith
    Language
    Zig
    Compiler
    zig 0.15.2
    AI
    Opus 5.5
    2 pages

Smallest Wasm

  1. 1.
    patrickgwsmith
    Language
    Rust
    Compiler
    rustc 1.93.0
    AI
    Opus 5.5
    10.9 KiB
  2. 2.
    patrickgwsmith
    Language
    Zig
    Compiler
    zig 0.15.2
    AI
    Opus 5.5
    10.9 KiB
  3. 3.
    patrickgwsmith
    Language
    C
    Compiler
    zig cc 0.15.2 (Clang 20.1.2)
    AI
    Opus 5.5
    11.0 KiB

Sign in to compare on your machine

Comparisons are saved with your GitHub account, so we can trust the results and set aside any that look wrong. We never ask for access to your repositories.