Micro modules
tinyminimal module; fixed pipeline overhead
wago
13.5µs
wazero
90.1µs
6.7× faster
Calls
dispatchcall_indirect through a function table
3.9× faster
fib_recrecursion; call/return heavy
wago
20.4µs
wazero
74.2µs
3.6× faster
Calls and memory
memory_treerecursive call tree with load/store churn at every node
4.4× faster
Compute kernels
fannkuchBenchmarks-Game fannkuch-redux: permute + pancake-flip (branch/array churn, no f64)
7.1× faster
matmuldense n x n f64 matrix multiply (fp multiply-add + strided memory)
6× faster
nbodyBenchmarks-Game N-body: leapfrog solar-system integration (f64 mul/add/div/sqrt)
4.9× faster
raytracerecursive Whitted ray tracer: n x n frame, 4 spheres + checker plane, depth-4 mirrors (heavy f64 vector math)
7× faster
sha256standards-correct SHA-256 of an n-KiB buffer (i32 rotate/shift/xor/add, 64-round)
5.8× faster
Real-world SIMD
blake-as (simd)AssemblyScript blake-as SIMD: BLAKE3 hash of a 4 KiB buffer
wago
1.19ms
wazero
3.04ms
2.5× faster
json-as (simd)AssemblyScript json-as SIMD: serialize/deserialize canonical payload
wago
1.93ms
wazero
9.76ms
5.1× faster
utf-as (simd)AssemblyScript utf-as SIMD: UTF-8 length and validation of mixed text
4.9× faster
Semantic corpus
blake3BLAKE3 reference implementation with published hash, keyed-hash, and key-derivation vectors
wago
1.09ms
wazero
4.44ms
4.1× faster
coremarkCoreMark 1.0 integer, list, matrix, and state-machine workload
4.9× faster
lz4LZ4 compression/decompression with exact size and byte oracles
8.8× faster
pcre2PCRE2 Unicode pattern compilation, matching, and capture extraction
wago
15.8ms
wazero
167.8ms
10.6× faster
qoiQOI image encode/decode with exact byte and pixel oracles
5.8× faster
yyjsonyyjson parse, DOM edit, and serialization workload
wago
9.10ms
wazero
65.1ms
7.2× faster
zstdZstandard decompression workload with an exact output oracle
wago
4.20ms
wazero
35.4ms
8.4× faster
Application corpora
age · decryptage WASI CLI decrypts a pinned test ciphertext with an exact plaintext oracle
wago
319ms
wazero
1536.3ms
4.8× faster
brotli · compressBrotli WASI CLI compresses 2.16 MB of generated JavaScript at quality 10 with an exact output oracle
wago
31.3ms
wazero
289.8ms
9.3× faster
cJSON · cjsoncJSON parse, DOM mutation, and compact serialization workload
wago
4.14ms
wazero
26.7ms
6.5× faster
esbuild · minifyesbuild WASI CLI minifies 2.16 MB of generated production-shaped JavaScript
wago
838.3ms
wazero
4521.7ms
5.4× faster
icestorm · generateicebram generates seeded 8-bit BRAM initialization words
2.4× faster
jq · json-transformjq WASI CLI sorts, groups, and aggregates 50,000 generated JSON objects with an exact output oracle
3.9× faster
json2csv · peoplejson2csv CLI extracts nested fields from newline-delimited JSON into CSV
wago
22.6ms
wazero
180.3ms
8× faster
LodePNG · lodepngLodePNG RGBA encoding, decoding, and exact pixel round trip
wago
7.11ms
wazero
49.6ms
7× faster
Lua · luaLua 5.4 interpreter running tables, closures, patterns, and GC
4.4× faster
php · bucketsPHP 8.2.6 groups five thousand integers into seventeen weighted buckets
wago
671.9ms
wazero
3283.6ms
4.9× faster
quickjs · scriptQuickJS WASI CLI parses and aggregates 50,000 generated service events
4.3× faster
ripgrep · sourceripgrep searches a JavaScript program and returns exact matching source lines
wago
165.6ms
wazero
734.6ms
4.4× faster
ruby · bucketsRuby 3.2.2 groups five thousand integers into seventeen weighted buckets
wago
344ms
wazero
2646.4ms
7.7× faster
Sightglass · libsodium-hashlibsodium hash self-test, 1,061 iterations
wago
4.37ms
wazero
21.4ms
4.9× faster
Sightglass · shootout-base64base64 shootout kernel
wago
2.92ms
wazero
18.9ms
6.5× faster
sqlite3 · querySQLite WASI shell recursively generates one million rows and computes four exact aggregates
wago
100.4ms
wazero
495.8ms
4.9× faster
swift-format · format-sourceSwift formatter CLI reformats source from stdin with an exact output oracle
wago
1254.2ms
wazero
5643.3ms
4.5× faster
TinyXML-2 · tinyxml2TinyXML-2 parse, query, and DOM mutation workload
wago
4.33ms
wazero
25.5ms
5.9× faster
uutils/coreutils · sortRust coreutils sorts a pinned twenty-four-record text file
wago
363.8ms
wazero
1718.3ms
4.7× faster
Wren · wrenWren VM executing classes, closures, collections, and allocation-heavy loops
wago
11.8ms
wazero
51.2ms
4.3× faster
yosys · counterYosys parses a synchronous Verilog counter, converts processes, and reports exact cell statistics
wago
1185.6ms
wazero
5323.9ms
4.5× faster
Micro modules
tinyminimal module; fixed pipeline overhead
wago
18.4 KB
wazero
268 KB
14.6× less
Calls
dispatchcall_indirect through a function table
wago
39.7 KB
wazero
274 KB
6.9× less
fib_recrecursion; call/return heavy
7.8× less
Calls and memory
memory_treerecursive call tree with load/store churn at every node
11.1× less
Compute kernels
fannkuchBenchmarks-Game fannkuch-redux: permute + pancake-flip (branch/array churn, no f64)
wago
87.7 KB
wazero
1020 KB
11.6× less
matmuldense n x n f64 matrix multiply (fp multiply-add + strided memory)
wago
44.8 KB
wazero
622 KB
13.9× less
nbodyBenchmarks-Game N-body: leapfrog solar-system integration (f64 mul/add/div/sqrt)
wago
87.6 KB
wazero
729 KB
8.3× less
raytracerecursive Whitted ray tracer: n x n frame, 4 spheres + checker plane, depth-4 mirrors (heavy f64 vector math)
wago
146 KB
wazero
1.6 MB
10.9× less
sha256standards-correct SHA-256 of an n-KiB buffer (i32 rotate/shift/xor/add, 64-round)
wago
84.2 KB
wazero
807 KB
9.6× less
Real-world SIMD
blake-as (simd)AssemblyScript blake-as SIMD: BLAKE3 hash of a 4 KiB buffer
wago
350 KB
wazero
1.9 MB
5.7× less
json-as (simd)AssemblyScript json-as SIMD: serialize/deserialize canonical payload
wago
509 KB
wazero
2.2 MB
4.4× less
utf-as (simd)AssemblyScript utf-as SIMD: UTF-8 length and validation of mixed text
wago
329 KB
wazero
1.3 MB
4× less
Semantic corpus
blake3BLAKE3 reference implementation with published hash, keyed-hash, and key-derivation vectors
wago
321 KB
wazero
1.5 MB
4.9× less
coremarkCoreMark 1.0 integer, list, matrix, and state-machine workload
wago
163 KB
wazero
2.1 MB
12.9× less
lz4LZ4 compression/decompression with exact size and byte oracles
wago
103 KB
wazero
951 KB
9.2× less
pcre2PCRE2 Unicode pattern compilation, matching, and capture extraction
wago
3.6 MB
wazero
118.7 MB
33.2× less
qoiQOI image encode/decode with exact byte and pixel oracles
wago
113 KB
wazero
836 KB
7.4× less
yyjsonyyjson parse, DOM edit, and serialization workload
wago
2.5 MB
wazero
50.8 MB
20.1× less
zstdZstandard decompression workload with an exact output oracle
wago
753 KB
wazero
23.6 MB
32× less
Application corpora
age · decryptage WASI CLI decrypts a pinned test ciphertext with an exact plaintext oracle
wago
49.6 MB
wazero
88.5 MB
1.8× less
brotli · compressBrotli WASI CLI compresses 2.16 MB of generated JavaScript at quality 10 with an exact output oracle
wago
7 MB
wazero
194.5 MB
27.7× less
cJSON · cjsoncJSON parse, DOM mutation, and compact serialization workload
wago
581 KB
wazero
8.7 MB
15.3× less
esbuild · minifyesbuild WASI CLI minifies 2.16 MB of generated production-shaped JavaScript
wago
111.4 MB
wazero
296 MB
2.7× less
icestorm · generateicebram generates seeded 8-bit BRAM initialization words
wago
11.9 MB
wazero
10.3 MB
1.1× more
jq · json-transformjq WASI CLI sorts, groups, and aggregates 50,000 generated JSON objects with an exact output oracle
wago
6.3 MB
wazero
27.3 MB
4.4× less
json2csv · peoplejson2csv CLI extracts nested fields from newline-delimited JSON into CSV
wago
2.7 MB
wazero
37.4 MB
14.1× less
LodePNG · lodepngLodePNG RGBA encoding, decoding, and exact pixel round trip
wago
732 KB
wazero
19.2 MB
26.8× less
Lua · luaLua 5.4 interpreter running tables, closures, patterns, and GC
wago
2.6 MB
wazero
17.9 MB
6.8× less
php · bucketsPHP 8.2.6 groups five thousand integers into seventeen weighted buckets
wago
110.5 MB
wazero
325.5 MB
2.9× less
quickjs · scriptQuickJS WASI CLI parses and aggregates 50,000 generated service events
5.3× less
ripgrep · sourceripgrep searches a JavaScript program and returns exact matching source lines
wago
51.1 MB
wazero
89.8 MB
1.8× less
ruby · bucketsRuby 3.2.2 groups five thousand integers into seventeen weighted buckets
wago
49.3 MB
wazero
394.5 MB
8× less
Sightglass · libsodium-hashlibsodium hash self-test, 1,061 iterations
wago
741 KB
wazero
9.1 MB
12.6× less
Sightglass · shootout-base64base64 shootout kernel
wago
775 KB
wazero
8.5 MB
11.2× less
sqlite3 · querySQLite WASI shell recursively generates one million rows and computes four exact aggregates
wago
12.7 MB
wazero
65.5 MB
5.2× less
swift-format · format-sourceSwift formatter CLI reformats source from stdin with an exact output oracle
wago
400.1 MB
wazero
261.7 MB
1.5× more
TinyXML-2 · tinyxml2TinyXML-2 parse, query, and DOM mutation workload
wago
834 KB
wazero
9.2 MB
11.3× less
uutils/coreutils · sortRust coreutils sorts a pinned twenty-four-record text file
wago
50.2 MB
wazero
161.9 MB
3.2× less
Wren · wrenWren VM executing classes, closures, collections, and allocation-heavy loops
4.3× less
yosys · counterYosys parses a synchronous Verilog counter, converts processes, and reports exact cell statistics
wago
223.4 MB
wazero
449.3 MB
2× less
Micro modules
tinyminimal module; fixed pipeline overhead
1.1× faster
Calls
dispatchcall_indirect through a function table
1.1× faster
fib_recrecursion; call/return heavy
1.1× faster
Calls and memory
memory_treerecursive call tree with load/store churn at every node
1.8× faster
Compute kernels
fannkuchBenchmarks-Game fannkuch-redux: permute + pancake-flip (branch/array churn, no f64)
9.9× faster
matmuldense n x n f64 matrix multiply (fp multiply-add + strided memory)
9.8× faster
nbodyBenchmarks-Game N-body: leapfrog solar-system integration (f64 mul/add/div/sqrt)
12.3× faster
raytracerecursive Whitted ray tracer: n x n frame, 4 spheres + checker plane, depth-4 mirrors (heavy f64 vector math)
12.5× faster
sha256standards-correct SHA-256 of an n-KiB buffer (i32 rotate/shift/xor/add, 64-round)
9.5× faster
Real-world SIMD
blake-as (simd)AssemblyScript blake-as SIMD: BLAKE3 hash of a 4 KiB buffer
1.4× faster
json-as (simd)AssemblyScript json-as SIMD: serialize/deserialize canonical payload
wago
16.3µs
wazero
16.6µs
parity
utf-as (simd)AssemblyScript utf-as SIMD: UTF-8 length and validation of mixed text
1.3× slower
Semantic corpus
blake3BLAKE3 reference implementation with published hash, keyed-hash, and key-derivation vectors
6× faster
coremarkCoreMark 1.0 integer, list, matrix, and state-machine workload
wago
11.4µs
wazero
17.4µs
1.5× faster
lz4LZ4 compression/decompression with exact size and byte oracles
16.8× faster
pcre2PCRE2 Unicode pattern compilation, matching, and capture extraction
wago
61.5µs
wazero
45.7µs
1.3× slower
qoiQOI image encode/decode with exact byte and pixel oracles
23.8× faster
yyjsonyyjson parse, DOM edit, and serialization workload
wago
17.4µs
wazero
20.7µs
1.2× faster
zstdZstandard decompression workload with an exact output oracle
13.9× faster
Micro modules
tinyminimal module; fixed pipeline overhead
1.3× less
Calls
dispatchcall_indirect through a function table
1.1× less
fib_recrecursion; call/return heavy
2.1× more
Calls and memory
memory_treerecursive call tree with load/store churn at every node
parity
Compute kernels
fannkuchBenchmarks-Game fannkuch-redux: permute + pancake-flip (branch/array churn, no f64)
wago
3.5 KB
wazero
7.1 KB
2× less
matmuldense n x n f64 matrix multiply (fp multiply-add + strided memory)
wago
2.6 KB
wazero
3.4 KB
1.3× less
nbodyBenchmarks-Game N-body: leapfrog solar-system integration (f64 mul/add/div/sqrt)
wago
2.8 KB
wazero
5.6 KB
2× less
raytracerecursive Whitted ray tracer: n x n frame, 4 spheres + checker plane, depth-4 mirrors (heavy f64 vector math)
wago
11 KB
wazero
14.1 KB
1.3× less
sha256standards-correct SHA-256 of an n-KiB buffer (i32 rotate/shift/xor/add, 64-round)
2.7× less
Real-world SIMD
blake-as (simd)AssemblyScript blake-as SIMD: BLAKE3 hash of a 4 KiB buffer
wago
35.6 KB
wazero
58 KB
1.6× less
json-as (simd)AssemblyScript json-as SIMD: serialize/deserialize canonical payload
wago
68.2 KB
wazero
82.6 KB
1.2× less
utf-as (simd)AssemblyScript utf-as SIMD: UTF-8 length and validation of mixed text
wago
19.5 KB
wazero
30.3 KB
1.6× less
Semantic corpus
blake3BLAKE3 reference implementation with published hash, keyed-hash, and key-derivation vectors
wago
25.5 KB
wazero
38.1 KB
1.5× less
coremarkCoreMark 1.0 integer, list, matrix, and state-machine workload
wago
18.3 KB
wazero
31.5 KB
1.7× less
lz4LZ4 compression/decompression with exact size and byte oracles
wago
4.8 KB
wazero
10.8 KB
2.3× less
pcre2PCRE2 Unicode pattern compilation, matching, and capture extraction
wago
382 KB
wazero
1.1 MB
2.9× less
qoiQOI image encode/decode with exact byte and pixel oracles
wago
4.8 KB
wazero
10.5 KB
2.2× less
yyjsonyyjson parse, DOM edit, and serialization workload
wago
232 KB
wazero
532 KB
2.3× less
zstdZstandard decompression workload with an exact output oracle
wago
134 KB
wazero
280 KB
2.1× less
Application corpora
age · decryptage WASI CLI decrypts a pinned test ciphertext with an exact plaintext oracle
wago
11 MB
wazero
28.9 MB
2.6× less
brotli · compressBrotli WASI CLI compresses 2.16 MB of generated JavaScript at quality 10 with an exact output oracle
2.2× less
cJSON · cjsoncJSON parse, DOM mutation, and compact serialization workload
wago
118 KB
wazero
224 KB
1.9× less
esbuild · minifyesbuild WASI CLI minifies 2.16 MB of generated production-shaped JavaScript
wago
29.7 MB
wazero
86.9 MB
2.9× less
icestorm · generateicebram generates seeded 8-bit BRAM initialization words
wago
1.3 MB
wazero
1.3 MB
parity
jq · json-transformjq WASI CLI sorts, groups, and aggregates 50,000 generated JSON objects with an exact output oracle
wago
1.3 MB
wazero
2.6 MB
2× less
json2csv · peoplejson2csv CLI extracts nested fields from newline-delimited JSON into CSV
wago
641 KB
wazero
2.3 MB
3.7× less
LodePNG · lodepngLodePNG RGBA encoding, decoding, and exact pixel round trip
wago
219 KB
wazero
459 KB
2.1× less
Lua · luaLua 5.4 interpreter running tables, closures, patterns, and GC
wago
451 KB
wazero
954 KB
2.1× less
php · bucketsPHP 8.2.6 groups five thousand integers into seventeen weighted buckets
wago
17.6 MB
wazero
54.2 MB
3.1× less
quickjs · scriptQuickJS WASI CLI parses and aggregates 50,000 generated service events
2× less
ripgrep · sourceripgrep searches a JavaScript program and returns exact matching source lines
2.1× less
ruby · bucketsRuby 3.2.2 groups five thousand integers into seventeen weighted buckets
wago
11.3 MB
wazero
28.3 MB
2.5× less
Sightglass · libsodium-hashlibsodium hash self-test, 1,061 iterations
wago
124 KB
wazero
203 KB
1.6× less
Sightglass · shootout-base64base64 shootout kernel
wago
75.8 KB
wazero
132 KB
1.7× less
sqlite3 · querySQLite WASI shell recursively generates one million rows and computes four exact aggregates
wago
3.1 MB
wazero
6.7 MB
2.1× less
swift-format · format-sourceSwift formatter CLI reformats source from stdin with an exact output oracle
wago
48.9 MB
wazero
74.4 MB
1.5× less
TinyXML-2 · tinyxml2TinyXML-2 parse, query, and DOM mutation workload
wago
126 KB
wazero
245 KB
1.9× less
uutils/coreutils · sortRust coreutils sorts a pinned twenty-four-record text file
wago
14.7 MB
wazero
25.7 MB
1.7× less
Wren · wrenWren VM executing classes, closures, collections, and allocation-heavy loops
wago
324 KB
wazero
661 KB
2× less
yosys · counterYosys parses a synchronous Verilog counter, converts processes, and reports exact cell statistics
wago
36.3 MB
wazero
79.8 MB
2.2× less
Micro modules
tinyadd · micro corpus
wago
13.4ns
wazero
28.7ns
2.1× faster
Calls
dispatchapply · calls corpus
wago
14.6ns
wazero
30.9ns
2.1× faster
fib_recfib · calls corpus
3.1× faster
Calls and memory
memory_treerun · calls+memory corpus
2.2× faster
Compute kernels
fannkuchrun · compute corpus
wago
1.06ms
wazero
1.38ms
1.3× faster
matmulrun · compute corpus
5× faster
nbodystep · compute corpus
1.4× faster
raytracerender · compute corpus
parity
sha256hashN · compute corpus
wago
35.1µs
wazero
52.2µs
1.5× faster
Real-world SIMD
blake-as (simd)hashN · real-simd corpus
1.3× faster
json-as (simd)serialize + deserialize · geometric mean
wago
33.6µs
wazero
54.9µs
1.6× faster
utf-as (simd)convertN · real-simd corpus
1.3× faster
utf-as (simd)validateN · real-simd corpus
1.3× faster
Semantic corpus
blake3blake3_derive_key · semantic corpus
1.1× faster
blake3blake3_hash · semantic corpus
1.1× faster
blake3blake3_keyed_hash · semantic corpus
1.1× faster
coremarkcoremark_run · semantic corpus
wago
31.3ms
wazero
52.1ms
1.7× faster
lz4lz4_compress_run · semantic corpus
wago
29.9µs
wazero
52.6µs
1.8× faster
lz4lz4_decompress_run · semantic corpus
2.5× faster
pcre2pcre2_run · semantic corpus
1.9× faster
qoiqoi_decode_run · semantic corpus
2.6× faster
qoiqoi_encode_run · semantic corpus
1.7× faster
yyjsonyyjson_run · semantic corpus
1.6× faster
zstdzstd_decompress_run · semantic corpus
1.4× faster
Application corpora
age · decryptage WASI CLI decrypts a pinned test ciphertext with an exact plaintext oracle
wago
5.37ms
wazero
6.58ms
1.2× faster
brotli · compressBrotli WASI CLI compresses 2.16 MB of generated JavaScript at quality 10 with an exact output oracle
wago
686.5ms
wazero
1081.9ms
1.6× faster
cJSON · cjsoncJSON parse, DOM mutation, and compact serialization workload
wago
47.9µs
wazero
25.2µs
1.9× slower
esbuild · minifyesbuild WASI CLI minifies 2.16 MB of generated production-shaped JavaScript
wago
474.4ms
wazero
1146.9ms
2.4× faster
icestorm · generateicebram generates seeded 8-bit BRAM initialization words
1.9× slower
jq · json-transformjq WASI CLI sorts, groups, and aggregates 50,000 generated JSON objects with an exact output oracle
wago
448.5ms
wazero
759.1ms
1.7× faster
json2csv · peoplejson2csv CLI extracts nested fields from newline-delimited JSON into CSV
1.6× slower
LodePNG · lodepngLodePNG RGBA encoding, decoding, and exact pixel round trip
wago
2.40ms
wazero
4.34ms
1.8× faster
Lua · luaLua 5.4 interpreter running tables, closures, patterns, and GC
1.2× slower
php · bucketsPHP 8.2.6 groups five thousand integers into seventeen weighted buckets
wago
8.95ms
wazero
7.10ms
1.3× slower
quickjs · scriptQuickJS WASI CLI parses and aggregates 50,000 generated service events
wago
158.7ms
wazero
264.4ms
1.7× faster
ripgrep · sourceripgrep searches a JavaScript program and returns exact matching source lines
1.5× slower
ruby · bucketsRuby 3.2.2 groups five thousand integers into seventeen weighted buckets
wago
23.1ms
wazero
33.8ms
1.5× faster
Sightglass · libsodium-hashlibsodium hash self-test, 1,061 iterations
wago
3.21ms
wazero
5.89ms
1.8× faster
Sightglass · shootout-base64base64 shootout kernel
wago
2.98ms
wazero
3.08ms
parity
sqlite3 · querySQLite WASI shell recursively generates one million rows and computes four exact aggregates
wago
271.4ms
wazero
730.8ms
2.7× faster
swift-format · format-sourceSwift formatter CLI reformats source from stdin with an exact output oracle
wago
32.5ms
wazero
33.9ms
parity
TinyXML-2 · tinyxml2TinyXML-2 parse, query, and DOM mutation workload
wago
61.7µs
wazero
29.9µs
2.1× slower
uutils/coreutils · sortRust coreutils sorts a pinned twenty-four-record text file
2.5× slower
Wren · wrenWren VM executing classes, closures, collections, and allocation-heavy loops
1.6× faster
yosys · counterYosys parses a synchronous Verilog counter, converts processes, and reports exact cell statistics
wago
5.25ms
wazero
4.71ms
1.1× slower