Micro modules
tinyminimal module; fixed pipeline overhead
wago
16.4µs
wazero
53.7µs
3.3× faster
Calls
dispatchcall_indirect through a function table
wago
30.1µs
wazero
72.1µs
2.4× faster
fib_recrecursion; call/return heavy
wago
19.3µs
wazero
53.4µs
2.8× faster
Calls and memory
memory_treerecursive call tree with load/store churn at every node
wago
34.5µs
wazero
88.4µs
2.6× faster
Memory
memorylinear-memory load/store loop
wago
23.9µs
wazero
73.6µs
3.1× faster
Scale
many_funcs300 small functions; per-function compile cost
2.3× faster
Compute kernels
fannkuchBenchmarks-Game fannkuch-redux: permute + pancake-flip (branch/array churn, no f64)
5.1× faster
linked_listsingly-linked list build + dependent-load pointer chase
wago
19.8µs
wazero
74.5µs
3.8× faster
matmuldense n x n f64 matrix multiply (fp multiply-add + strided memory)
4.7× faster
nbodyBenchmarks-Game N-body: leapfrog solar-system integration (f64 mul/add/div/sqrt)
3.6× faster
raytracerecursive Whitted ray tracer: n x n frame, 4 spheres + checker plane, depth-4 mirrors (heavy f64 vector math)
4× faster
sha256standards-correct SHA-256 of an n-KiB buffer (i32 rotate/shift/xor/add, 64-round)
4.1× faster
Real-world programs
blake-asAssemblyScript blake-as: BLAKE3 hash (SWAR) of a 4 KiB buffer
1.9× faster
json-asAssemblyScript json-as (SWAR): serialize/deserialize a struct
wago
1.66ms
wazero
5.64ms
3.4× faster
utf-asAssemblyScript utf-as: UTF-8 -> UTF-16 transcode (SWAR) of a 4 KiB buffer
2.4× faster
Real-world SIMD
blake-as (simd)AssemblyScript blake-as SIMD: BLAKE3 hash of a 4 KiB buffer
wago
1.41ms
wazero
2.49ms
1.8× faster
json-as (simd)AssemblyScript json-as SIMD: serialize/deserialize canonical payload
wago
1.83ms
wazero
6.39ms
3.5× faster
utf-as (simd)AssemblyScript utf-as SIMD: UTF-8 length and validation of mixed text
2.6× faster
Semantic corpus
blake3BLAKE3 reference implementation with published hash, keyed-hash, and key-derivation vectors
wago
1.22ms
wazero
2.50ms
2× faster
coremarkCoreMark 1.0 integer, list, matrix, and state-machine workload
3.6× faster
drwavdr_wav in-memory PCM decoding, chunked reads, and seeking
wago
2.56ms
wazero
10.9ms
4.3× faster
fastfloatfast_float decimal parsing across IEEE-754 boundary values
wago
1.80ms
wazero
8.24ms
4.6× faster
kissfftKissFFT 257-point complex forward and inverse transforms
wago
1.47ms
wazero
5.35ms
3.6× faster
libtommathLibTomMath modular exponentiation, GCD, and serialization
wago
3.28ms
wazero
11.8ms
3.6× faster
lz4LZ4 compression/decompression with exact size and byte oracles
4.9× faster
minizminiz deflate compression and decompression round trip
wago
3.02ms
wazero
14.3ms
4.7× faster
monocypherMonocypher authenticated encryption and streaming BLAKE2b
wago
1.17ms
wazero
3.15ms
2.7× faster
nanosvgNanoSVG parsing and shape/path traversal workload
wago
4.71ms
wazero
17.5ms
3.7× faster
pcre2PCRE2 Unicode pattern compilation, matching, and capture extraction
wago
14.9ms
wazero
147.6ms
9.9× faster
qoiQOI image encode/decode with exact byte and pixel oracles
3.5× faster
utf8procutf8proc Unicode compatibility normalization and case folding
wago
1.77ms
wazero
4.97ms
2.8× faster
xxhashXXH64 hashing across short, boundary, and large inputs
3.2× faster
yyjsonyyjson parse, DOM edit, and serialization workload
wago
9.42ms
wazero
47.6ms
5.1× faster
zlibzlib inflate workload with an exact output oracle
wago
1.30ms
wazero
6.36ms
4.9× faster
zstdZstandard decompression workload with an exact output oracle
wago
4.76ms
wazero
26.7ms
5.6× faster
Statistics
PolyBench/C · correlationPolyBench/C correlation (small dataset)
4.3× faster
PolyBench/C · covariancePolyBench/C covariance (small dataset)
4.1× faster
BLAS
PolyBench/C · gemmPolyBench/C gemm (small dataset)
4.3× faster
PolyBench/C · gemverPolyBench/C gemver (small dataset)
4.5× faster
PolyBench/C · gesummvPolyBench/C gesummv (small dataset)
4.3× faster
PolyBench/C · symmPolyBench/C symm (small dataset)
4.4× faster
PolyBench/C · syr2kPolyBench/C syr2k (small dataset)
4.3× faster
PolyBench/C · syrkPolyBench/C syrk (small dataset)
4.4× faster
PolyBench/C · trmmPolyBench/C trmm (small dataset)
4.2× faster
Linear algebra
PolyBench/C · 2mmPolyBench/C 2mm (small dataset)
4.4× faster
PolyBench/C · 3mmPolyBench/C 3mm (small dataset)
4.4× faster
PolyBench/C · ataxPolyBench/C atax (small dataset)
4.4× faster
PolyBench/C · bicgPolyBench/C bicg (small dataset)
4.4× faster
PolyBench/C · doitgenPolyBench/C doitgen (small dataset)
3.8× faster
PolyBench/C · mvtPolyBench/C mvt (small dataset)
4.5× faster
Solvers
PolyBench/C · choleskyPolyBench/C cholesky (small dataset)
4.4× faster
PolyBench/C · durbinPolyBench/C durbin (small dataset)
4.3× faster
PolyBench/C · gramschmidtPolyBench/C gramschmidt (small dataset)
4.4× faster
PolyBench/C · luPolyBench/C lu (small dataset)
4.6× faster
PolyBench/C · ludcmpPolyBench/C ludcmp (small dataset)
4.8× faster
PolyBench/C · trisolvPolyBench/C trisolv (small dataset)
4.3× faster
Stencils
PolyBench/C · adiPolyBench/C adi (small dataset)
4.2× faster
PolyBench/C · fdtd-2dPolyBench/C fdtd-2d (small dataset)
3.6× faster
PolyBench/C · heat-3dPolyBench/C heat-3d (small dataset)
4.2× faster
PolyBench/C · jacobi-1dPolyBench/C jacobi-1d (small dataset)
4.2× faster
PolyBench/C · jacobi-2dPolyBench/C jacobi-2d (small dataset)
4.3× faster
PolyBench/C · seidel-2dPolyBench/C seidel-2d (small dataset)
4× faster
Graph algorithms
PolyBench/C · floyd-warshallPolyBench/C floyd-warshall (small dataset)
4× faster
Dynamic programming
PolyBench/C · nussinovPolyBench/C nussinov (small dataset)
4.3× faster
Image processing
PolyBench/C · derichePolyBench/C deriche (small dataset)
4.2× faster
Application corpora
age · decryptage WASI CLI decrypts a pinned test ciphertext with an exact plaintext oracle
wago
371.7ms
wazero
1585.7ms
4.3× faster
age-keygen · keygen-publicage-keygen WASI CLI derives the public recipient from a pinned test identity
wago
211.8ms
wazero
894.3ms
4.2× faster
brotli · compressBrotli WASI CLI compresses 2.16 MB of generated JavaScript at quality 10 with an exact output oracle
wago
36.8ms
wazero
278.3ms
7.6× faster
brotli · decompressBrotli WASI CLI decompresses a pinned stream with an exact plaintext oracle
wago
34.8ms
wazero
279.8ms
8× faster
cJSON · cjsoncJSON parse, DOM mutation, and compact serialization workload
4.8× faster
duktape · scriptDuktape WASI CLI parses and aggregates 50,000 generated service events
wago
44.2ms
wazero
181.4ms
4.1× faster
Embench · crc32CRC-32
2.2× faster
Embench · huffbenchHuffman compression
3.7× faster
Embench · matmult-intinteger matrix multiplication
3.1× faster
Embench · nettle-aesAES encryption
2.9× faster
Embench · nettle-sha256SHA-256
2.5× faster
Embench · qrduinoQR encoder
wago
1.55ms
wazero
5.62ms
3.6× faster
esbuild · minifyesbuild WASI CLI minifies 2.16 MB of generated production-shaped JavaScript
wago
1056.8ms
wazero
4775.1ms
4.5× faster
icestorm · generateicebram generates seeded 8-bit BRAM initialization words
wago
35.5ms
wazero
84.2ms
2.4× faster
icestorm · imageicemulti packages a 1K FPGA bitstream as a multiboot image
2.3× faster
icestorm · packicepack reconstructs a 1K FPGA bitstream from an ASCII configuration
wago
37.2ms
wazero
90.2ms
2.4× faster
icestorm · clockicepll computes iCE40 PLL divisors for a fixed 12 to 24 MHz clock request
wago
4.46ms
wazero
18.7ms
4.2× faster
icestorm · unpackiceunpack decodes a 1K FPGA bitstream into its ASCII configuration
wago
36.5ms
wazero
90.7ms
2.5× faster
jq · json-transformjq WASI CLI sorts, groups, and aggregates 50,000 generated JSON objects with an exact output oracle
wago
45.6ms
wazero
165.3ms
3.6× faster
json2csv · peoplejson2csv CLI extracts nested fields from newline-delimited JSON into CSV
wago
21.1ms
wazero
178.2ms
8.5× faster
LodePNG · lodepngLodePNG RGBA encoding, decoding, and exact pixel round trip
wago
7.57ms
wazero
34.8ms
4.6× faster
Lua · luaLua 5.4 interpreter running tables, closures, patterns, and GC
4.1× faster
lzmadec · decompressXZ Utils LZMA decoder CLI decompresses a pinned LZMA stream with an exact output oracle
wago
4.85ms
wazero
23.5ms
4.8× faster
lzmainfo · headerXZ Utils lzmainfo CLI parses a pinned LZMA header with an exact output oracle
wago
3.79ms
wazero
17.1ms
4.5× faster
php · bucketsPHP 8.2.6 groups five thousand integers into seventeen weighted buckets
wago
752.6ms
wazero
3499.5ms
4.6× faster
quickjs · scriptQuickJS WASI CLI parses and aggregates 50,000 generated service events
wago
51.5ms
wazero
211.3ms
4.1× faster
ripgrep · sourceripgrep searches a JavaScript program and returns exact matching source lines
wago
207ms
wazero
794.3ms
3.8× faster
ruby · bucketsRuby 3.2.2 groups five thousand integers into seventeen weighted buckets
wago
371ms
wazero
3145.6ms
8.5× faster
Sightglass · libsodium-hashlibsodium hash self-test, 1,061 iterations
wago
4.26ms
wazero
14.5ms
3.4× faster
Sightglass · shootout-base64base64 shootout kernel
4.2× faster
sqlite3 · querySQLite WASI shell recursively generates one million rows and computes four exact aggregates
wago
107.5ms
wazero
513.2ms
4.8× faster
swift-format · format-sourceSwift formatter CLI reformats source from stdin with an exact output oracle
wago
1473.2ms
wazero
6129.8ms
4.2× faster
TACLeBench · bsortself-checking bubble sort
4.2× faster
TinyXML-2 · tinyxml2TinyXML-2 parse, query, and DOM mutation workload
4.6× faster
tree · ashell-lista-Shell tree command traverses a pinned directory with a-Shell host imports
wago
11.5ms
wazero
34.9ms
3× faster
tree · listtree WASI CLI recursively lists a pinned source directory with an exact output oracle
wago
7.47ms
wazero
32.7ms
4.4× faster
trellis · generateecpbram generates a seeded 512-word ECP5 BRAM hex file
wago
45.7ms
wazero
126.4ms
2.8× faster
trellis · bitstreamecppack converts a pinned ECP5 text configuration and device database into a bitstream
wago
56.1ms
wazero
166.8ms
3× faster
trellis · clockecppll calculates ECP5 PLL divisors for a fixed 12 to 24 MHz clock request
wago
36.9ms
wazero
108.4ms
2.9× faster
trellis · configecpunpack decodes a pinned ECP5 bitstream into its text configuration
wago
52.3ms
wazero
147.3ms
2.8× faster
uutils/coreutils · base64Rust coreutils base64-encodes a pinned text file
wago
428.8ms
wazero
1855.5ms
4.3× faster
uutils/coreutils · sha256sumRust coreutils hashes a pinned text file with SHA-256
wago
428ms
wazero
1805.4ms
4.2× faster
uutils/coreutils · sortRust coreutils sorts a pinned twenty-four-record text file
wago
428.7ms
wazero
1874.2ms
4.4× faster
uutils/coreutils · wcRust coreutils counts lines, words, and bytes in a pinned text file
wago
427.8ms
wazero
1823.3ms
4.3× faster
Wren · wrenWren VM executing classes, closures, collections, and allocation-heavy loops
wago
11.4ms
wazero
42.2ms
3.7× faster
Wren · moduloWren prime sieve using floating modulo, with an exact f64 bit oracle including a fractional remainder
wago
10.9ms
wazero
41.9ms
3.8× faster
xzdec · decompressXZ Utils decoder CLI decompresses a pinned XZ stream with an exact output oracle
wago
6.59ms
wazero
28.6ms
4.3× faster
yosys · counterYosys parses a synchronous Verilog counter, converts processes, and reports exact cell statistics
wago
1266.2ms
wazero
5888.1ms
4.7× 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.9 KB
wazero
274 KB
6.9× less
fib_recrecursion; call/return heavy
wago
34.8 KB
wazero
273 KB
7.8× less
Calls and memory
memory_treerecursive call tree with load/store churn at every node
wago
27.7 KB
wazero
310 KB
11.2× less
Memory
memorylinear-memory load/store loop
wago
22.1 KB
wazero
295 KB
13.4× less
Scale
many_funcs300 small functions; per-function compile cost
wago
185 KB
wazero
346 KB
1.9× less
Compute kernels
fannkuchBenchmarks-Game fannkuch-redux: permute + pancake-flip (branch/array churn, no f64)
wago
86.8 KB
wazero
1018 KB
11.7× less
linked_listsingly-linked list build + dependent-load pointer chase
wago
21.2 KB
wazero
310 KB
14.6× less
matmuldense n x n f64 matrix multiply (fp multiply-add + strided memory)
wago
76.2 KB
wazero
620 KB
8.1× less
nbodyBenchmarks-Game N-body: leapfrog solar-system integration (f64 mul/add/div/sqrt)
wago
85.8 KB
wazero
726 KB
8.5× less
raytracerecursive Whitted ray tracer: n x n frame, 4 spheres + checker plane, depth-4 mirrors (heavy f64 vector math)
wago
203 KB
wazero
1.5 MB
7.8× less
sha256standards-correct SHA-256 of an n-KiB buffer (i32 rotate/shift/xor/add, 64-round)
wago
83.5 KB
wazero
806 KB
9.7× less
Real-world programs
blake-asAssemblyScript blake-as: BLAKE3 hash (SWAR) of a 4 KiB buffer
wago
213 KB
wazero
1.1 MB
5.3× less
json-asAssemblyScript json-as (SWAR): serialize/deserialize a struct
wago
300 KB
wazero
2.4 MB
8.3× less
utf-asAssemblyScript utf-as: UTF-8 -> UTF-16 transcode (SWAR) of a 4 KiB buffer
wago
240 KB
wazero
1.2 MB
5× less
Real-world SIMD
blake-as (simd)AssemblyScript blake-as SIMD: BLAKE3 hash of a 4 KiB buffer
wago
526 KB
wazero
1.9 MB
3.8× less
json-as (simd)AssemblyScript json-as SIMD: serialize/deserialize canonical payload
wago
320 KB
wazero
2.2 MB
7× less
utf-as (simd)AssemblyScript utf-as SIMD: UTF-8 length and validation of mixed text
wago
342 KB
wazero
1.3 MB
3.9× less
Semantic corpus
blake3BLAKE3 reference implementation with published hash, keyed-hash, and key-derivation vectors
wago
320 KB
wazero
1.5 MB
4.9× less
coremarkCoreMark 1.0 integer, list, matrix, and state-machine workload
6.3× less
drwavdr_wav in-memory PCM decoding, chunked reads, and seeking
11.3× less
fastfloatfast_float decimal parsing across IEEE-754 boundary values
wago
801 KB
wazero
10.5 MB
13.4× less
kissfftKissFFT 257-point complex forward and inverse transforms
8.9× less
libtommathLibTomMath modular exponentiation, GCD, and serialization
wago
482 KB
wazero
4.1 MB
8.8× less
lz4LZ4 compression/decompression with exact size and byte oracles
wago
103 KB
wazero
947 KB
9.2× less
minizminiz deflate compression and decompression round trip
wago
646 KB
wazero
7.2 MB
11.4× less
monocypherMonocypher authenticated encryption and streaming BLAKE2b
wago
434 KB
wazero
2.3 MB
5.5× less
nanosvgNanoSVG parsing and shape/path traversal workload
wago
637 KB
wazero
5.1 MB
8.2× less
pcre2PCRE2 Unicode pattern compilation, matching, and capture extraction
wago
5.3 MB
wazero
118.3 MB
22.3× less
qoiQOI image encode/decode with exact byte and pixel oracles
wago
112 KB
wazero
833 KB
7.4× less
utf8procutf8proc Unicode compatibility normalization and case folding
wago
780 KB
wazero
4.1 MB
5.3× less
xxhashXXH64 hashing across short, boundary, and large inputs
wago
104 KB
wazero
818 KB
7.9× less
yyjsonyyjson parse, DOM edit, and serialization workload
wago
3.8 MB
wazero
50.6 MB
13.2× less
zlibzlib inflate workload with an exact output oracle
wago
494 KB
wazero
7.3 MB
15.2× less
zstdZstandard decompression workload with an exact output oracle
wago
1.6 MB
wazero
23.5 MB
15.1× less
Statistics
PolyBench/C · correlationPolyBench/C correlation (small dataset)
wago
108 KB
wazero
964 KB
8.9× less
PolyBench/C · covariancePolyBench/C covariance (small dataset)
wago
101 KB
wazero
875 KB
8.7× less
BLAS
PolyBench/C · gemmPolyBench/C gemm (small dataset)
wago
103 KB
wazero
868 KB
8.4× less
PolyBench/C · gemverPolyBench/C gemver (small dataset)
wago
173 KB
wazero
1.3 MB
7.6× less
PolyBench/C · gesummvPolyBench/C gesummv (small dataset)
8× less
PolyBench/C · symmPolyBench/C symm (small dataset)
wago
110 KB
wazero
964 KB
8.7× less
PolyBench/C · syr2kPolyBench/C syr2k (small dataset)
wago
105 KB
wazero
849 KB
8.1× less
PolyBench/C · syrkPolyBench/C syrk (small dataset)
wago
104 KB
wazero
845 KB
8.1× less
PolyBench/C · trmmPolyBench/C trmm (small dataset)
wago
106 KB
wazero
859 KB
8.1× less
Linear algebra
PolyBench/C · 2mmPolyBench/C 2mm (small dataset)
9.5× less
PolyBench/C · 3mmPolyBench/C 3mm (small dataset)
wago
173 KB
wazero
1.4 MB
8× less
PolyBench/C · ataxPolyBench/C atax (small dataset)
8.1× less
PolyBench/C · bicgPolyBench/C bicg (small dataset)
wago
105 KB
wazero
852 KB
8.1× less
PolyBench/C · doitgenPolyBench/C doitgen (small dataset)
wago
172 KB
wazero
1.2 MB
7.4× less
PolyBench/C · mvtPolyBench/C mvt (small dataset)
wago
106 KB
wazero
932 KB
8.8× less
Solvers
PolyBench/C · choleskyPolyBench/C cholesky (small dataset)
wago
110 KB
wazero
1.1 MB
9.9× less
PolyBench/C · durbinPolyBench/C durbin (small dataset)
wago
101 KB
wazero
816 KB
8.1× less
PolyBench/C · gramschmidtPolyBench/C gramschmidt (small dataset)
wago
107 KB
wazero
952 KB
8.9× less
PolyBench/C · luPolyBench/C lu (small dataset)
wago
108 KB
wazero
1.1 MB
10× less
PolyBench/C · ludcmpPolyBench/C ludcmp (small dataset)
wago
178 KB
wazero
1.7 MB
9.5× less
PolyBench/C · trisolvPolyBench/C trisolv (small dataset)
wago
100 KB
wazero
738 KB
7.4× less
Stencils
PolyBench/C · adiPolyBench/C adi (small dataset)
wago
174 KB
wazero
1.3 MB
7.6× less
PolyBench/C · fdtd-2dPolyBench/C fdtd-2d (small dataset)
wago
182 KB
wazero
1.1 MB
6× less
PolyBench/C · heat-3dPolyBench/C heat-3d (small dataset)
wago
116 KB
wazero
1.2 MB
10.3× less
PolyBench/C · jacobi-1dPolyBench/C jacobi-1d (small dataset)
7.1× less
PolyBench/C · jacobi-2dPolyBench/C jacobi-2d (small dataset)
wago
98.4 KB
wazero
745 KB
7.6× less
PolyBench/C · seidel-2dPolyBench/C seidel-2d (small dataset)
wago
96.3 KB
wazero
649 KB
6.7× less
Graph algorithms
PolyBench/C · floyd-warshallPolyBench/C floyd-warshall (small dataset)
wago
94.4 KB
wazero
645 KB
6.8× less
Dynamic programming
PolyBench/C · nussinovPolyBench/C nussinov (small dataset)
wago
102 KB
wazero
816 KB
8× less
Image processing
PolyBench/C · derichePolyBench/C deriche (small dataset)
9.4× less
Application corpora
age · decryptage WASI CLI decrypts a pinned test ciphertext with an exact plaintext oracle
wago
71.9 MB
wazero
88.4 MB
1.2× less
age-keygen · keygen-publicage-keygen WASI CLI derives the public recipient from a pinned test identity
wago
44.4 MB
wazero
67.2 MB
1.5× less
brotli · compressBrotli WASI CLI compresses 2.16 MB of generated JavaScript at quality 10 with an exact output oracle
wago
12.4 MB
wazero
193.7 MB
15.7× less
brotli · decompressBrotli WASI CLI decompresses a pinned stream with an exact plaintext oracle
wago
12.4 MB
wazero
193.7 MB
15.7× less
cJSON · cjsoncJSON parse, DOM mutation, and compact serialization workload
wago
562 KB
wazero
8.6 MB
15.7× less
duktape · scriptDuktape WASI CLI parses and aggregates 50,000 generated service events
wago
5.2 MB
wazero
65.1 MB
12.5× less
Embench · crc32CRC-32
7.6× less
Embench · huffbenchHuffman compression
wago
192 KB
wazero
1.9 MB
9.9× less
Embench · matmult-intinteger matrix multiplication
wago
106 KB
wazero
1.1 MB
11.1× less
Embench · nettle-aesAES encryption
wago
204 KB
wazero
1.7 MB
8.4× less
Embench · nettle-sha256SHA-256
wago
323 KB
wazero
1.5 MB
4.9× less
Embench · qrduinoQR encoder
wago
740 KB
wazero
7.8 MB
10.8× less
esbuild · minifyesbuild WASI CLI minifies 2.16 MB of generated production-shaped JavaScript
wago
153.4 MB
wazero
296.2 MB
1.9× less
icestorm · generateicebram generates seeded 8-bit BRAM initialization words
2.5× less
icestorm · imageicemulti packages a 1K FPGA bitstream as a multiboot image
wago
3.4 MB
wazero
9.8 MB
2.9× less
icestorm · packicepack reconstructs a 1K FPGA bitstream from an ASCII configuration
wago
4.3 MB
wazero
10.7 MB
2.5× less
icestorm · clockicepll computes iCE40 PLL divisors for a fixed 12 to 24 MHz clock request
12.2× less
icestorm · unpackiceunpack decodes a 1K FPGA bitstream into its ASCII configuration
wago
4.3 MB
wazero
10.7 MB
2.5× less
jq · json-transformjq WASI CLI sorts, groups, and aggregates 50,000 generated JSON objects with an exact output oracle
wago
4.2 MB
wazero
27.2 MB
6.4× less
json2csv · peoplejson2csv CLI extracts nested fields from newline-delimited JSON into CSV
wago
1.9 MB
wazero
36.8 MB
19.5× less
LodePNG · lodepngLodePNG RGBA encoding, decoding, and exact pixel round trip
wago
1.3 MB
wazero
19.1 MB
14.3× less
Lua · luaLua 5.4 interpreter running tables, closures, patterns, and GC
9.1× less
lzmadec · decompressXZ Utils LZMA decoder CLI decompresses a pinned LZMA stream with an exact output oracle
wago
920 KB
wazero
11.8 MB
13.2× less
lzmainfo · headerXZ Utils lzmainfo CLI parses a pinned LZMA header with an exact output oracle
wago
601 KB
wazero
8.4 MB
14.4× less
php · bucketsPHP 8.2.6 groups five thousand integers into seventeen weighted buckets
wago
100.5 MB
wazero
325.1 MB
3.2× less
quickjs · scriptQuickJS WASI CLI parses and aggregates 50,000 generated service events
wago
4.3 MB
wazero
35.7 MB
8.2× less
ripgrep · sourceripgrep searches a JavaScript program and returns exact matching source lines
wago
35.7 MB
wazero
89.5 MB
2.5× less
ruby · bucketsRuby 3.2.2 groups five thousand integers into seventeen weighted buckets
wago
39.1 MB
wazero
390.6 MB
10× less
Sightglass · libsodium-hashlibsodium hash self-test, 1,061 iterations
wago
649 KB
wazero
9.1 MB
14.4× less
Sightglass · shootout-base64base64 shootout kernel
wago
678 KB
wazero
8.5 MB
12.8× less
sqlite3 · querySQLite WASI shell recursively generates one million rows and computes four exact aggregates
wago
7.9 MB
wazero
64.9 MB
8.2× less
swift-format · format-sourceSwift formatter CLI reformats source from stdin with an exact output oracle
wago
312.7 MB
wazero
261.9 MB
1.2× more
TACLeBench · bsortself-checking bubble sort
wago
39.6 KB
wazero
471 KB
11.9× less
TinyXML-2 · tinyxml2TinyXML-2 parse, query, and DOM mutation workload
wago
822 KB
wazero
9.2 MB
11.4× less
tree · ashell-lista-Shell tree command traverses a pinned directory with a-Shell host imports
wago
1.5 MB
wazero
10.6 MB
7.2× less
tree · listtree WASI CLI recursively lists a pinned source directory with an exact output oracle
11.5× less
trellis · generateecpbram generates a seeded 512-word ECP5 BRAM hex file
wago
4.8 MB
wazero
17.9 MB
3.7× less
trellis · bitstreamecppack converts a pinned ECP5 text configuration and device database into a bitstream
wago
5.5 MB
wazero
27.7 MB
5.1× less
trellis · clockecppll calculates ECP5 PLL divisors for a fixed 12 to 24 MHz clock request
wago
4.1 MB
wazero
23.4 MB
5.8× less
trellis · configecpunpack decodes a pinned ECP5 bitstream into its text configuration
2.8× less
uutils/coreutils · base64Rust coreutils base64-encodes a pinned text file
wago
33.3 MB
wazero
165.7 MB
5× less
uutils/coreutils · sha256sumRust coreutils hashes a pinned text file with SHA-256
wago
33.3 MB
wazero
165.7 MB
5× less
uutils/coreutils · sortRust coreutils sorts a pinned twenty-four-record text file
wago
33.3 MB
wazero
165.7 MB
5× less
uutils/coreutils · wcRust coreutils counts lines, words, and bytes in a pinned text file
wago
33.3 MB
wazero
165.7 MB
5× less
Wren · wrenWren VM executing classes, closures, collections, and allocation-heavy loops
wago
1.1 MB
wazero
9.9 MB
8.7× less
Wren · moduloWren prime sieve using floating modulo, with an exact f64 bit oracle including a fractional remainder
wago
1.1 MB
wazero
9.9 MB
8.7× less
xzdec · decompressXZ Utils decoder CLI decompresses a pinned XZ stream with an exact output oracle
wago
982 KB
wazero
12.2 MB
12.7× less
yosys · counterYosys parses a synchronous Verilog counter, converts processes, and reports exact cell statistics
wago
107 MB
wazero
448.9 MB
4.2× less
Micro modules
tinyminimal module; fixed pipeline overhead
parity
Calls
dispatchcall_indirect through a function table
parity
fib_recrecursion; call/return heavy
parity
Calls and memory
memory_treerecursive call tree with load/store churn at every node
1.4× faster
Memory
memorylinear-memory load/store loop
1.4× faster
Scale
many_funcs300 small functions; per-function compile cost
parity
Compute kernels
fannkuchBenchmarks-Game fannkuch-redux: permute + pancake-flip (branch/array churn, no f64)
4.9× faster
linked_listsingly-linked list build + dependent-load pointer chase
2.2× faster
matmuldense n x n f64 matrix multiply (fp multiply-add + strided memory)
4.7× faster
nbodyBenchmarks-Game N-body: leapfrog solar-system integration (f64 mul/add/div/sqrt)
5× faster
raytracerecursive Whitted ray tracer: n x n frame, 4 spheres + checker plane, depth-4 mirrors (heavy f64 vector math)
4.7× faster
sha256standards-correct SHA-256 of an n-KiB buffer (i32 rotate/shift/xor/add, 64-round)
4.3× faster
Real-world programs
blake-asAssemblyScript blake-as: BLAKE3 hash (SWAR) of a 4 KiB buffer
wago
10.8µs
wazero
11.9µs
1.1× faster
json-asAssemblyScript json-as (SWAR): serialize/deserialize a struct
wago
17.1µs
wazero
14.4µs
1.2× slower
utf-asAssemblyScript utf-as: UTF-8 -> UTF-16 transcode (SWAR) of a 4 KiB buffer
wago
20.9µs
wazero
16.4µs
1.3× slower
Real-world SIMD
blake-as (simd)AssemblyScript blake-as SIMD: BLAKE3 hash of a 4 KiB buffer
wago
10.5µs
wazero
11.8µs
1.1× faster
json-as (simd)AssemblyScript json-as SIMD: serialize/deserialize canonical payload
wago
17.2µs
wazero
14.7µs
1.2× slower
utf-as (simd)AssemblyScript utf-as SIMD: UTF-8 length and validation of mixed text
wago
22.4µs
wazero
16.7µs
1.3× slower
Semantic corpus
blake3BLAKE3 reference implementation with published hash, keyed-hash, and key-derivation vectors
wago
10.9µs
wazero
44.3µs
4.1× faster
coremarkCoreMark 1.0 integer, list, matrix, and state-machine workload
wago
10.5µs
wazero
13.7µs
1.3× faster
drwavdr_wav in-memory PCM decoding, chunked reads, and seeking
wago
11.5µs
wazero
14.3µs
1.2× faster
fastfloatfast_float decimal parsing across IEEE-754 boundary values
wago
14.7µs
wazero
14.2µs
parity
kissfftKissFFT 257-point complex forward and inverse transforms
wago
10.8µs
wazero
13.9µs
1.3× faster
libtommathLibTomMath modular exponentiation, GCD, and serialization
wago
11.9µs
wazero
14.7µs
1.2× faster
lz4LZ4 compression/decompression with exact size and byte oracles
wago
11.5µs
wazero
78.8µs
6.9× faster
minizminiz deflate compression and decompression round trip
wago
11.8µs
wazero
45.7µs
3.9× faster
monocypherMonocypher authenticated encryption and streaming BLAKE2b
wago
10.8µs
wazero
13.6µs
1.3× faster
nanosvgNanoSVG parsing and shape/path traversal workload
wago
16.9µs
wazero
17.2µs
parity
pcre2PCRE2 Unicode pattern compilation, matching, and capture extraction
wago
64.6µs
wazero
25.3µs
2.6× slower
qoiQOI image encode/decode with exact byte and pixel oracles
8.1× faster
utf8procutf8proc Unicode compatibility normalization and case folding
3.5× slower
xxhashXXH64 hashing across short, boundary, and large inputs
1.8× faster
yyjsonyyjson parse, DOM edit, and serialization workload
wago
18.3µs
wazero
15.7µs
1.2× slower
zlibzlib inflate workload with an exact output oracle
wago
12.1µs
wazero
77.2µs
6.4× faster
zstdZstandard decompression workload with an exact output oracle
wago
12.1µs
wazero
76.4µs
6.3× faster
Statistics
PolyBench/C · correlationPolyBench/C correlation (small dataset)
wago
10.6µs
wazero
13.9µs
1.3× faster
PolyBench/C · covariancePolyBench/C covariance (small dataset)
wago
10.9µs
wazero
13.9µs
1.3× faster
BLAS
PolyBench/C · gemmPolyBench/C gemm (small dataset)
wago
10.5µs
wazero
14.3µs
1.4× faster
PolyBench/C · gemverPolyBench/C gemver (small dataset)
wago
10.4µs
wazero
14.3µs
1.4× faster
PolyBench/C · gesummvPolyBench/C gesummv (small dataset)
wago
10.2µs
wazero
14.4µs
1.4× faster
PolyBench/C · symmPolyBench/C symm (small dataset)
wago
10.6µs
wazero
14.4µs
1.4× faster
PolyBench/C · syr2kPolyBench/C syr2k (small dataset)
wago
10.6µs
wazero
14.2µs
1.3× faster
PolyBench/C · syrkPolyBench/C syrk (small dataset)
wago
10.4µs
wazero
14.2µs
1.4× faster
PolyBench/C · trmmPolyBench/C trmm (small dataset)
wago
10.5µs
wazero
14.2µs
1.4× faster
Linear algebra
PolyBench/C · 2mmPolyBench/C 2mm (small dataset)
wago
10.8µs
wazero
14.1µs
1.3× faster
PolyBench/C · 3mmPolyBench/C 3mm (small dataset)
1.3× faster
PolyBench/C · ataxPolyBench/C atax (small dataset)
1.3× faster
PolyBench/C · bicgPolyBench/C bicg (small dataset)
wago
10.3µs
wazero
13.9µs
1.3× faster
PolyBench/C · doitgenPolyBench/C doitgen (small dataset)
wago
10.6µs
wazero
13.9µs
1.3× faster
PolyBench/C · mvtPolyBench/C mvt (small dataset)
wago
10.5µs
wazero
14.3µs
1.4× faster
Solvers
PolyBench/C · choleskyPolyBench/C cholesky (small dataset)
1.3× faster
PolyBench/C · durbinPolyBench/C durbin (small dataset)
wago
10.2µs
wazero
14.1µs
1.4× faster
PolyBench/C · gramschmidtPolyBench/C gramschmidt (small dataset)
wago
10.5µs
wazero
14.5µs
1.4× faster
PolyBench/C · luPolyBench/C lu (small dataset)
wago
10.4µs
wazero
14.4µs
1.4× faster
PolyBench/C · ludcmpPolyBench/C ludcmp (small dataset)
wago
10.5µs
wazero
14.3µs
1.4× faster
PolyBench/C · trisolvPolyBench/C trisolv (small dataset)
1.3× faster
Stencils
PolyBench/C · adiPolyBench/C adi (small dataset)
wago
10.7µs
wazero
13.9µs
1.3× faster
PolyBench/C · fdtd-2dPolyBench/C fdtd-2d (small dataset)
wago
10.5µs
wazero
14.2µs
1.3× faster
PolyBench/C · heat-3dPolyBench/C heat-3d (small dataset)
wago
10.5µs
wazero
14.8µs
1.4× faster
PolyBench/C · jacobi-1dPolyBench/C jacobi-1d (small dataset)
wago
10.2µs
wazero
14.3µs
1.4× faster
PolyBench/C · jacobi-2dPolyBench/C jacobi-2d (small dataset)
wago
10.4µs
wazero
14.4µs
1.4× faster
PolyBench/C · seidel-2dPolyBench/C seidel-2d (small dataset)
wago
10.5µs
wazero
14.1µs
1.3× faster
Graph algorithms
PolyBench/C · floyd-warshallPolyBench/C floyd-warshall (small dataset)
wago
10.5µs
wazero
14.3µs
1.4× faster
Dynamic programming
PolyBench/C · nussinovPolyBench/C nussinov (small dataset)
wago
10.4µs
wazero
14.3µs
1.4× faster
Image processing
PolyBench/C · derichePolyBench/C deriche (small dataset)
wago
10.6µs
wazero
13.9µs
1.3× 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× more
Calls and memory
memory_treerecursive call tree with load/store churn at every node
parity
Memory
memorylinear-memory load/store loop
1.6× less
Scale
many_funcs300 small functions; per-function compile cost
wago
7.6 KB
wazero
18.9 KB
2.5× less
Compute kernels
fannkuchBenchmarks-Game fannkuch-redux: permute + pancake-flip (branch/array churn, no f64)
wago
3.6 KB
wazero
7.1 KB
1.9× less
linked_listsingly-linked list build + dependent-load pointer chase
2.2× less
matmuldense n x n f64 matrix multiply (fp multiply-add + strided memory)
wago
1.9 KB
wazero
3.4 KB
1.8× less
nbodyBenchmarks-Game N-body: leapfrog solar-system integration (f64 mul/add/div/sqrt)
wago
3.2 KB
wazero
5.6 KB
1.8× less
raytracerecursive Whitted ray tracer: n x n frame, 4 spheres + checker plane, depth-4 mirrors (heavy f64 vector math)
wago
12.3 KB
wazero
14.1 KB
1.1× less
sha256standards-correct SHA-256 of an n-KiB buffer (i32 rotate/shift/xor/add, 64-round)
wago
2.4 KB
wazero
5.5 KB
2.3× less
Real-world programs
blake-asAssemblyScript blake-as: BLAKE3 hash (SWAR) of a 4 KiB buffer
wago
9.7 KB
wazero
11.2 KB
1.2× less
json-asAssemblyScript json-as (SWAR): serialize/deserialize a struct
wago
56.1 KB
wazero
72 KB
1.3× less
utf-asAssemblyScript utf-as: UTF-8 -> UTF-16 transcode (SWAR) of a 4 KiB buffer
wago
3.8 KB
wazero
7.2 KB
1.9× less
Real-world SIMD
blake-as (simd)AssemblyScript blake-as SIMD: BLAKE3 hash of a 4 KiB buffer
wago
37.7 KB
wazero
58 KB
1.5× less
json-as (simd)AssemblyScript json-as SIMD: serialize/deserialize canonical payload
wago
66.6 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.9 KB
wazero
30.3 KB
1.5× less
Semantic corpus
blake3BLAKE3 reference implementation with published hash, keyed-hash, and key-derivation vectors
wago
26.4 KB
wazero
38.1 KB
1.4× less
coremarkCoreMark 1.0 integer, list, matrix, and state-machine workload
wago
19.2 KB
wazero
31.5 KB
1.6× less
drwavdr_wav in-memory PCM decoding, chunked reads, and seeking
wago
68.1 KB
wazero
149 KB
2.2× less
fastfloatfast_float decimal parsing across IEEE-754 boundary values
wago
40.9 KB
wazero
70.7 KB
1.7× less
kissfftKissFFT 257-point complex forward and inverse transforms
wago
32.5 KB
wazero
69.1 KB
2.1× less
libtommathLibTomMath modular exponentiation, GCD, and serialization
wago
88.5 KB
wazero
160 KB
1.8× less
lz4LZ4 compression/decompression with exact size and byte oracles
wago
4.8 KB
wazero
10.8 KB
2.2× less
minizminiz deflate compression and decompression round trip
wago
71.4 KB
wazero
184 KB
2.6× less
monocypherMonocypher authenticated encryption and streaming BLAKE2b
wago
28.9 KB
wazero
58.5 KB
2× less
nanosvgNanoSVG parsing and shape/path traversal workload
wago
135 KB
wazero
242 KB
1.8× less
pcre2PCRE2 Unicode pattern compilation, matching, and capture extraction
wago
386 KB
wazero
1.1 MB
2.9× less
qoiQOI image encode/decode with exact byte and pixel oracles
2.1× less
utf8procutf8proc Unicode compatibility normalization and case folding
wago
23.7 KB
wazero
63.3 KB
2.7× less
xxhashXXH64 hashing across short, boundary, and large inputs
wago
2.8 KB
wazero
4.9 KB
1.8× less
yyjsonyyjson parse, DOM edit, and serialization workload
wago
237 KB
wazero
532 KB
2.2× less
zlibzlib inflate workload with an exact output oracle
wago
28.6 KB
wazero
72.4 KB
2.5× less
zstdZstandard decompression workload with an exact output oracle
wago
134 KB
wazero
280 KB
2.1× less
Statistics
PolyBench/C · correlationPolyBench/C correlation (small dataset)
wago
4.5 KB
wazero
8.9 KB
1.9× less
PolyBench/C · covariancePolyBench/C covariance (small dataset)
2× less
BLAS
PolyBench/C · gemmPolyBench/C gemm (small dataset)
wago
4.2 KB
wazero
8.2 KB
2× less
PolyBench/C · gemverPolyBench/C gemver (small dataset)
wago
5.9 KB
wazero
12.3 KB
2.1× less
PolyBench/C · gesummvPolyBench/C gesummv (small dataset)
wago
3.7 KB
wazero
7.1 KB
1.9× less
PolyBench/C · symmPolyBench/C symm (small dataset)
wago
4.7 KB
wazero
9.3 KB
2× less
PolyBench/C · syr2kPolyBench/C syr2k (small dataset)
2× less
PolyBench/C · syrkPolyBench/C syrk (small dataset)
wago
3.9 KB
wazero
7.8 KB
2× less
PolyBench/C · trmmPolyBench/C trmm (small dataset)
wago
4.1 KB
wazero
8.2 KB
2× less
Linear algebra
PolyBench/C · 2mmPolyBench/C 2mm (small dataset)
1.9× less
PolyBench/C · 3mmPolyBench/C 3mm (small dataset)
wago
6.1 KB
wazero
11.9 KB
1.9× less
PolyBench/C · ataxPolyBench/C atax (small dataset)
1.9× less
PolyBench/C · bicgPolyBench/C bicg (small dataset)
1.9× less
PolyBench/C · doitgenPolyBench/C doitgen (small dataset)
wago
5.6 KB
wazero
14.1 KB
2.5× less
PolyBench/C · mvtPolyBench/C mvt (small dataset)
wago
4.4 KB
wazero
8.8 KB
2× less
Solvers
PolyBench/C · choleskyPolyBench/C cholesky (small dataset)
2.1× less
PolyBench/C · durbinPolyBench/C durbin (small dataset)
1.9× less
PolyBench/C · gramschmidtPolyBench/C gramschmidt (small dataset)
wago
4.6 KB
wazero
9.1 KB
2× less
PolyBench/C · luPolyBench/C lu (small dataset)
wago
4.9 KB
wazero
10.4 KB
2.1× less
PolyBench/C · ludcmpPolyBench/C ludcmp (small dataset)
2.1× less
PolyBench/C · trisolvPolyBench/C trisolv (small dataset)
wago
3.4 KB
wazero
6.8 KB
2× less
Stencils
PolyBench/C · adiPolyBench/C adi (small dataset)
wago
5.8 KB
wazero
12.3 KB
2.1× less
PolyBench/C · fdtd-2dPolyBench/C fdtd-2d (small dataset)
wago
7.1 KB
wazero
11.5 KB
1.6× less
PolyBench/C · heat-3dPolyBench/C heat-3d (small dataset)
wago
5.1 KB
wazero
11.3 KB
2.2× less
PolyBench/C · jacobi-1dPolyBench/C jacobi-1d (small dataset)
wago
2.8 KB
wazero
5.8 KB
2.1× less
PolyBench/C · jacobi-2dPolyBench/C jacobi-2d (small dataset)
wago
3.2 KB
wazero
6.6 KB
2× less
PolyBench/C · seidel-2dPolyBench/C seidel-2d (small dataset)
1.8× less
Graph algorithms
PolyBench/C · floyd-warshallPolyBench/C floyd-warshall (small dataset)
wago
2.8 KB
wazero
5.7 KB
2× less
Dynamic programming
PolyBench/C · nussinovPolyBench/C nussinov (small dataset)
wago
3.6 KB
wazero
7.6 KB
2.1× less
Image processing
PolyBench/C · derichePolyBench/C deriche (small dataset)
wago
5.5 KB
wazero
10.4 KB
1.9× less
Application corpora
age · decryptage WASI CLI decrypts a pinned test ciphertext with an exact plaintext oracle
wago
12.1 MB
wazero
28.9 MB
2.4× less
age-keygen · keygen-publicage-keygen WASI CLI derives the public recipient from a pinned test identity
2.3× less
brotli · compressBrotli WASI CLI compresses 2.16 MB of generated JavaScript at quality 10 with an exact output oracle
2.1× less
brotli · decompressBrotli WASI CLI decompresses a pinned stream with an exact plaintext oracle
2.1× less
cJSON · cjsoncJSON parse, DOM mutation, and compact serialization workload
wago
116 KB
wazero
224 KB
1.9× less
duktape · scriptDuktape WASI CLI parses and aggregates 50,000 generated service events
wago
1.2 MB
wazero
2.4 MB
1.9× less
Embench · crc32CRC-32
1.2× less
Embench · huffbenchHuffman compression
wago
6.9 KB
wazero
12.7 KB
1.8× less
Embench · matmult-intinteger matrix multiplication
wago
5.4 KB
wazero
9.7 KB
1.8× less
Embench · nettle-aesAES encryption
wago
5.4 KB
wazero
14.9 KB
2.8× less
Embench · nettle-sha256SHA-256
2× less
Embench · qrduinoQR encoder
wago
36.7 KB
wazero
87.5 KB
2.4× less
esbuild · minifyesbuild WASI CLI minifies 2.16 MB of generated production-shaped JavaScript
wago
32.8 MB
wazero
86.9 MB
2.7× less
icestorm · generateicebram generates seeded 8-bit BRAM initialization words
wago
1.3 MB
wazero
1.3 MB
parity
icestorm · imageicemulti packages a 1K FPGA bitstream as a multiboot image
wago
1.2 MB
wazero
1.1 MB
1.1× more
icestorm · packicepack reconstructs a 1K FPGA bitstream from an ASCII configuration
wago
1.4 MB
wazero
1.5 MB
parity
icestorm · clockicepll computes iCE40 PLL divisors for a fixed 12 to 24 MHz clock request
wago
124 KB
wazero
223 KB
1.8× less
icestorm · unpackiceunpack decodes a 1K FPGA bitstream into its ASCII configuration
wago
1.4 MB
wazero
1.5 MB
parity
jq · json-transformjq WASI CLI sorts, groups, and aggregates 50,000 generated JSON objects with an exact output oracle
wago
1.4 MB
wazero
2.6 MB
1.9× less
json2csv · peoplejson2csv CLI extracts nested fields from newline-delimited JSON into CSV
wago
639 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
456 KB
wazero
954 KB
2.1× less
lzmadec · decompressXZ Utils LZMA decoder CLI decompresses a pinned LZMA stream with an exact output oracle
wago
138 KB
wazero
269 KB
1.9× less
lzmainfo · headerXZ Utils lzmainfo CLI parses a pinned LZMA header with an exact output oracle
wago
113 KB
wazero
202 KB
1.8× less
php · bucketsPHP 8.2.6 groups five thousand integers into seventeen weighted buckets
wago
20.6 MB
wazero
54.2 MB
2.6× less
quickjs · scriptQuickJS WASI CLI parses and aggregates 50,000 generated service events
1.9× 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 MB
wazero
28.3 MB
2.6× less
Sightglass · libsodium-hashlibsodium hash self-test, 1,061 iterations
wago
125 KB
wazero
203 KB
1.6× less
Sightglass · shootout-base64base64 shootout kernel
wago
72.6 KB
wazero
132 KB
1.8× 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
49.5 MB
wazero
74.4 MB
1.5× less
TACLeBench · bsortself-checking bubble sort
2.4× less
TinyXML-2 · tinyxml2TinyXML-2 parse, query, and DOM mutation workload
wago
127 KB
wazero
245 KB
1.9× less
tree · ashell-lista-Shell tree command traverses a pinned directory with a-Shell host imports
wago
455 KB
wazero
544 KB
1.2× less
tree · listtree WASI CLI recursively lists a pinned source directory with an exact output oracle
wago
222 KB
wazero
443 KB
2× less
trellis · generateecpbram generates a seeded 512-word ECP5 BRAM hex file
1.2× less
trellis · bitstreamecppack converts a pinned ECP5 text configuration and device database into a bitstream
1.3× less
trellis · clockecppll calculates ECP5 PLL divisors for a fixed 12 to 24 MHz clock request
wago
1.5 MB
wazero
1.6 MB
1.1× less
trellis · configecpunpack decodes a pinned ECP5 bitstream into its text configuration
wago
1.9 MB
wazero
2.4 MB
1.2× less
uutils/coreutils · base64Rust coreutils base64-encodes a pinned text file
wago
15.3 MB
wazero
25.7 MB
1.7× less
uutils/coreutils · sha256sumRust coreutils hashes a pinned text file with SHA-256
wago
15.3 MB
wazero
25.7 MB
1.7× less
uutils/coreutils · sortRust coreutils sorts a pinned twenty-four-record text file
wago
15.3 MB
wazero
25.7 MB
1.7× less
uutils/coreutils · wcRust coreutils counts lines, words, and bytes in a pinned text file
wago
15.3 MB
wazero
25.7 MB
1.7× less
Wren · wrenWren VM executing classes, closures, collections, and allocation-heavy loops
wago
333 KB
wazero
661 KB
2× less
Wren · moduloWren prime sieve using floating modulo, with an exact f64 bit oracle including a fractional remainder
wago
333 KB
wazero
661 KB
2× less
xzdec · decompressXZ Utils decoder CLI decompresses a pinned XZ stream with an exact output oracle
wago
195 KB
wazero
347 KB
1.8× less
yosys · counterYosys parses a synchronous Verilog counter, converts processes, and reports exact cell statistics
wago
36.8 MB
wazero
79.8 MB
2.2× less
Micro modules
tinyadd · micro corpus
wago
16.4ns
wazero
29.4ns
1.8× faster
Calls
dispatchapply · calls corpus
wago
18.3ns
wazero
32.8ns
1.8× faster
fib_recfib · calls corpus
2.3× faster
Calls and memory
memory_treerun · calls+memory corpus
2.2× faster
Memory
memorysum · memory corpus
wago
201.4ns
wazero
371.2ns
1.8× faster
Scale
many_funcsrun · scale corpus
wago
15.7ns
wazero
29.3ns
1.9× faster
Compute kernels
fannkuchrun · compute corpus
wago
1.14ms
wazero
1.43ms
1.3× faster
linked_listsum · compute corpus
1.2× faster
matmulrun · compute corpus
3.7× faster
nbodystep · compute corpus
1.3× faster
raytracerender · compute corpus
1.1× slower
sha256hashN · compute corpus
wago
37.2µs
wazero
53.8µs
1.4× faster
Real-world programs
blake-ashashN · real corpus
parity
json-asdeserializeN · real corpus
wago
38.8µs
wazero
62.9µs
1.6× faster
json-asserializeN · real corpus
wago
21.3µs
wazero
31.1µs
1.5× faster
utf-asconvertN · real corpus
1.4× faster
Real-world SIMD
blake-as (simd)hashN · real-simd corpus
1.2× faster
json-as (simd)serialize + deserialize · geometric mean
wago
35.8µs
wazero
57.8µs
1.6× faster
utf-as (simd)convertN · real-simd corpus
wago
54.6µs
wazero
69.2µs
1.3× faster
utf-as (simd)validateN · real-simd corpus
1.2× 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
34.7ms
wazero
53.7ms
1.5× faster
drwavdrwav_run · semantic corpus
1.2× faster
fastfloatfastfloat_run · semantic corpus
wago
536.4ns
wazero
516.7ns
parity
kissfftkissfft_run · semantic corpus
1.3× faster
libtommathlibtommath_run · semantic corpus
wago
15.4µs
wazero
26.8µs
1.7× faster
lz4lz4_compress_run · semantic corpus
wago
36.1µs
wazero
53.3µs
1.5× faster
lz4lz4_decompress_run · semantic corpus
2.5× faster
minizminiz_run · semantic corpus
wago
4.75ms
wazero
5.92ms
1.2× faster
monocyphermonocypher_run · semantic corpus
wago
37.5µs
wazero
33.5µs
1.1× slower
nanosvgnanosvg_run · semantic corpus
1.7× faster
pcre2pcre2_run · semantic corpus
1.8× faster
qoiqoi_decode_run · semantic corpus
2.2× faster
qoiqoi_encode_run · semantic corpus
1.5× faster
utf8procutf8proc_run · semantic corpus
wago
901.2ns
wazero
1.3µs
1.4× faster
xxhashxxhash_run · semantic corpus
1.5× faster
yyjsonyyjson_run · semantic corpus
wago
838.7ns
wazero
1.3µs
1.6× faster
zlibzlib_inflate_run · semantic corpus
1.8× faster
zstdzstd_decompress_run · semantic corpus
1.4× faster
Statistics
polybench-correlationpolybench_run · statistics corpus
1.9× faster
polybench-covariancepolybench_run · statistics corpus
1.8× faster
BLAS
polybench-gemmpolybench_run · blas corpus
2.6× faster
polybench-gemverpolybench_run · blas corpus
2.2× faster
polybench-gesummvpolybench_run · blas corpus
wago
46.8µs
wazero
81.6µs
1.7× faster
polybench-symmpolybench_run · blas corpus
2.6× faster
polybench-syr2kpolybench_run · blas corpus
2.4× faster
polybench-syrkpolybench_run · blas corpus
2.2× faster
polybench-trmmpolybench_run · blas corpus
1.7× faster
Linear algebra
polybench-2mmpolybench_run · linear-algebra corpus
2× faster
polybench-3mmpolybench_run · linear-algebra corpus
2.1× faster
polybench-ataxpolybench_run · linear-algebra corpus
1.6× faster
polybench-bicgpolybench_run · linear-algebra corpus
1.4× faster
polybench-doitgenpolybench_run · linear-algebra corpus
1.9× faster
polybench-mvtpolybench_run · linear-algebra corpus
wago
38.4µs
wazero
84.8µs
2.2× faster
Solvers
polybench-choleskypolybench_run · solver corpus
wago
1.41ms
wazero
2.48ms
1.8× faster
polybench-durbinpolybench_run · solver corpus
1.8× faster
polybench-gramschmidtpolybench_run · solver corpus
1.7× faster
polybench-lupolybench_run · solver corpus
wago
1.48ms
wazero
3.00ms
2× faster
polybench-ludcmppolybench_run · solver corpus
wago
1.51ms
wazero
2.80ms
1.9× faster
polybench-trisolvpolybench_run · solver corpus
2.3× faster
Stencils
polybench-adipolybench_run · stencil corpus
wago
1.91ms
wazero
1.91ms
parity
polybench-fdtd-2dpolybench_run · stencil corpus
2.2× faster
polybench-heat-3dpolybench_run · stencil corpus
2.5× faster
polybench-jacobi-1dpolybench_run · stencil corpus
1.9× faster
polybench-jacobi-2dpolybench_run · stencil corpus
2.8× faster
polybench-seidel-2dpolybench_run · stencil corpus
wago
4.07ms
wazero
4.13ms
parity
Graph algorithms
polybench-floyd-warshallpolybench_run · graph corpus
wago
5.10ms
wazero
9.49ms
1.9× faster
Dynamic programming
polybench-nussinovpolybench_run · dynamic-programming corpus
1.8× faster
Image processing
polybench-derichepolybench_run · image-processing corpus
1.4× faster
Application corpora
age · decryptage WASI CLI decrypts a pinned test ciphertext with an exact plaintext oracle
wago
5.31ms
wazero
5.71ms
1.1× faster
age-keygen · keygen-publicage-keygen WASI CLI derives the public recipient from a pinned test identity
wago
2.91ms
wazero
2.90ms
parity
brotli · compressBrotli WASI CLI compresses 2.16 MB of generated JavaScript at quality 10 with an exact output oracle
wago
777.4ms
wazero
1202ms
1.5× faster
brotli · decompressBrotli WASI CLI decompresses a pinned stream with an exact plaintext oracle
1.8× slower
cJSON · cjsoncJSON parse, DOM mutation, and compact serialization workload
wago
47.8µs
wazero
21.6µs
2.2× slower
duktape · scriptDuktape WASI CLI parses and aggregates 50,000 generated service events
wago
317.8ms
wazero
545.4ms
1.7× faster
Embench · crc32CRC-32
parity
Embench · huffbenchHuffman compression
1.4× faster
Embench · matmult-intinteger matrix multiplication
1.2× faster
Embench · nettle-aesAES encryption
1.8× faster
Embench · nettle-sha256SHA-256
1.1× faster
Embench · qrduinoQR encoder
1.6× faster
esbuild · minifyesbuild WASI CLI minifies 2.16 MB of generated production-shaped JavaScript
wago
554.6ms
wazero
1159.5ms
2.1× faster
icestorm · generateicebram generates seeded 8-bit BRAM initialization words
2.2× slower
icestorm · imageicemulti packages a 1K FPGA bitstream as a multiboot image
2.3× slower
icestorm · packicepack reconstructs a 1K FPGA bitstream from an ASCII configuration
wago
52.6ms
wazero
61.6ms
1.2× faster
icestorm · clockicepll computes iCE40 PLL divisors for a fixed 12 to 24 MHz clock request
wago
69.8µs
wazero
21.8µs
3.2× slower
icestorm · unpackiceunpack decodes a 1K FPGA bitstream into its ASCII configuration
wago
279.9ms
wazero
510.1ms
1.8× faster
jq · json-transformjq WASI CLI sorts, groups, and aggregates 50,000 generated JSON objects with an exact output oracle
wago
477.5ms
wazero
784.5ms
1.6× faster
json2csv · peoplejson2csv CLI extracts nested fields from newline-delimited JSON into CSV
1.9× slower
LodePNG · lodepngLodePNG RGBA encoding, decoding, and exact pixel round trip
wago
2.53ms
wazero
4.38ms
1.7× faster
Lua · luaLua 5.4 interpreter running tables, closures, patterns, and GC
1.3× slower
lzmadec · decompressXZ Utils LZMA decoder CLI decompresses a pinned LZMA stream with an exact output oracle
1.5× faster
lzmainfo · headerXZ Utils lzmainfo CLI parses a pinned LZMA header with an exact output oracle
wago
80.1µs
wazero
32.1µs
2.5× slower
php · bucketsPHP 8.2.6 groups five thousand integers into seventeen weighted buckets
wago
9.60ms
wazero
7.77ms
1.2× slower
quickjs · scriptQuickJS WASI CLI parses and aggregates 50,000 generated service events
wago
166.2ms
wazero
272.5ms
1.6× faster
ripgrep · sourceripgrep searches a JavaScript program and returns exact matching source lines
1.7× slower
ruby · bucketsRuby 3.2.2 groups five thousand integers into seventeen weighted buckets
1.2× faster
Sightglass · libsodium-hashlibsodium hash self-test, 1,061 iterations
wago
3.47ms
wazero
5.92ms
1.7× faster
Sightglass · shootout-base64base64 shootout kernel
wago
3.18ms
wazero
3.11ms
parity
sqlite3 · querySQLite WASI shell recursively generates one million rows and computes four exact aggregates
wago
278.2ms
wazero
759.4ms
2.7× faster
swift-format · format-sourceSwift formatter CLI reformats source from stdin with an exact output oracle
wago
37.4ms
wazero
28.2ms
1.3× slower
TACLeBench · bsortself-checking bubble sort
wago
13.9µs
wazero
23.6µs
1.7× faster
TinyXML-2 · tinyxml2TinyXML-2 parse, query, and DOM mutation workload
wago
61.5µs
wazero
23.2µs
2.6× slower
tree · ashell-lista-Shell tree command traverses a pinned directory with a-Shell host imports
1.9× slower
tree · listtree WASI CLI recursively lists a pinned source directory with an exact output oracle
2.1× slower
trellis · generateecpbram generates a seeded 512-word ECP5 BRAM hex file
wago
2.03ms
wazero
1.27ms
1.6× slower
trellis · bitstreamecppack converts a pinned ECP5 text configuration and device database into a bitstream
wago
1122.1ms
wazero
1079.3ms
parity
trellis · clockecppll calculates ECP5 PLL divisors for a fixed 12 to 24 MHz clock request
1.6× slower
trellis · configecpunpack decodes a pinned ECP5 bitstream into its text configuration
wago
4395.1ms
wazero
4617.6ms
1.1× faster
uutils/coreutils · base64Rust coreutils base64-encodes a pinned text file
3.3× slower
uutils/coreutils · sha256sumRust coreutils hashes a pinned text file with SHA-256
3.3× slower
uutils/coreutils · sortRust coreutils sorts a pinned twenty-four-record text file
3.2× slower
uutils/coreutils · wcRust coreutils counts lines, words, and bytes in a pinned text file
3.3× slower
Wren · wrenWren VM executing classes, closures, collections, and allocation-heavy loops
1.4× faster
Wren · moduloWren prime sieve using floating modulo, with an exact f64 bit oracle including a fractional remainder
1.4× faster
xzdec · decompressXZ Utils decoder CLI decompresses a pinned XZ stream with an exact output oracle
8.5× faster
yosys · counterYosys parses a synchronous Verilog counter, converts processes, and reports exact cell statistics
wago
5.77ms
wazero
4.86ms
1.2× slower