Micro modules
tinyminimal module; fixed pipeline overhead
6.8× faster
Calls
dispatchcall_indirect through a function table
5× faster
fib_recrecursion; call/return heavy
6.2× faster
Calls and memory
memory_treerecursive call tree with load/store churn at every node
5.3× faster
Memory
memorylinear-memory load/store loop
wago
23.2µs
wazero
84.5µs
3.6× 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)
10.9× faster
linked_listsingly-linked list build + dependent-load pointer chase
wago
18.9µs
wazero
80.6µs
4.3× faster
matmuldense n x n f64 matrix multiply (fp multiply-add + strided memory)
10.6× faster
nbodyBenchmarks-Game N-body: leapfrog solar-system integration (f64 mul/add/div/sqrt)
8.5× faster
raytracerecursive Whitted ray tracer: n x n frame, 4 spheres + checker plane, depth-4 mirrors (heavy f64 vector math)
8.8× faster
sha256standards-correct SHA-256 of an n-KiB buffer (i32 rotate/shift/xor/add, 64-round)
8.8× faster
Real-world programs
blake-asAssemblyScript blake-as: BLAKE3 hash (SWAR) of a 4 KiB buffer
2× faster
json-asAssemblyScript json-as (SWAR): serialize/deserialize a struct
wago
1.61ms
wazero
5.80ms
3.6× faster
utf-asAssemblyScript utf-as: UTF-8 -> UTF-16 transcode (SWAR) of a 4 KiB buffer
2.6× faster
Real-world SIMD
blake-as (simd)AssemblyScript blake-as SIMD: BLAKE3 hash of a 4 KiB buffer
wago
1.35ms
wazero
5.25ms
3.9× faster
json-as (simd)AssemblyScript json-as SIMD: serialize/deserialize canonical payload
7.2× faster
utf-as (simd)AssemblyScript utf-as SIMD: UTF-8 length and validation of mixed text
5.6× faster
Semantic corpus
blake3BLAKE3 reference implementation with published hash, keyed-hash, and key-derivation vectors
wago
1.21ms
wazero
4.94ms
4.1× faster
coremarkCoreMark 1.0 integer, list, matrix, and state-machine workload
8.1× faster
drwavdr_wav in-memory PCM decoding, chunked reads, and seeking
wago
2.41ms
wazero
11.7ms
4.9× faster
fastfloatfast_float decimal parsing across IEEE-754 boundary values
wago
1.65ms
wazero
8.85ms
5.4× faster
kissfftKissFFT 257-point complex forward and inverse transforms
wago
1.40ms
wazero
5.53ms
3.9× faster
libtommathLibTomMath modular exponentiation, GCD, and serialization
wago
3.20ms
wazero
11.8ms
3.7× faster
lz4LZ4 compression/decompression with exact size and byte oracles
10.3× faster
minizminiz deflate compression and decompression round trip
wago
2.80ms
wazero
14.8ms
5.3× faster
monocypherMonocypher authenticated encryption and streaming BLAKE2b
wago
1.14ms
wazero
3.24ms
2.8× faster
nanosvgNanoSVG parsing and shape/path traversal workload
wago
4.56ms
wazero
16.9ms
3.7× faster
pcre2PCRE2 Unicode pattern compilation, matching, and capture extraction
22.6× faster
qoiQOI image encode/decode with exact byte and pixel oracles
7.9× faster
utf8procutf8proc Unicode compatibility normalization and case folding
wago
1.69ms
wazero
5.43ms
3.2× faster
xxhashXXH64 hashing across short, boundary, and large inputs
3.6× faster
yyjsonyyjson parse, DOM edit, and serialization workload
wago
9.02ms
wazero
114.5ms
12.7× faster
zlibzlib inflate workload with an exact output oracle
wago
1.26ms
wazero
6.72ms
5.4× faster
zstdZstandard decompression workload with an exact output oracle
wago
4.43ms
wazero
50.7ms
11.4× faster
Statistics
PolyBench/C · correlationPolyBench/C correlation (small dataset)
4.5× faster
PolyBench/C · covariancePolyBench/C covariance (small dataset)
4.4× faster
BLAS
PolyBench/C · gemmPolyBench/C gemm (small dataset)
4.7× faster
PolyBench/C · gemverPolyBench/C gemver (small dataset)
4.9× faster
PolyBench/C · gesummvPolyBench/C gesummv (small dataset)
4.4× faster
PolyBench/C · symmPolyBench/C symm (small dataset)
4.6× faster
PolyBench/C · syr2kPolyBench/C syr2k (small dataset)
4.6× faster
PolyBench/C · syrkPolyBench/C syrk (small dataset)
4.5× faster
PolyBench/C · trmmPolyBench/C trmm (small dataset)
4.5× faster
Linear algebra
PolyBench/C · 2mmPolyBench/C 2mm (small dataset)
4.8× faster
PolyBench/C · 3mmPolyBench/C 3mm (small dataset)
4.8× faster
PolyBench/C · ataxPolyBench/C atax (small dataset)
4.8× faster
PolyBench/C · bicgPolyBench/C bicg (small dataset)
4.7× faster
PolyBench/C · doitgenPolyBench/C doitgen (small dataset)
4.4× faster
PolyBench/C · mvtPolyBench/C mvt (small dataset)
4.4× faster
Solvers
PolyBench/C · choleskyPolyBench/C cholesky (small dataset)
4.7× faster
PolyBench/C · durbinPolyBench/C durbin (small dataset)
4.5× faster
PolyBench/C · gramschmidtPolyBench/C gramschmidt (small dataset)
4.4× faster
PolyBench/C · luPolyBench/C lu (small dataset)
4.7× faster
PolyBench/C · ludcmpPolyBench/C ludcmp (small dataset)
5× faster
PolyBench/C · trisolvPolyBench/C trisolv (small dataset)
4.5× faster
Stencils
PolyBench/C · adiPolyBench/C adi (small dataset)
4.7× faster
PolyBench/C · fdtd-2dPolyBench/C fdtd-2d (small dataset)
4× faster
PolyBench/C · heat-3dPolyBench/C heat-3d (small dataset)
4.6× faster
PolyBench/C · jacobi-1dPolyBench/C jacobi-1d (small dataset)
4.5× faster
PolyBench/C · jacobi-2dPolyBench/C jacobi-2d (small dataset)
4.7× faster
PolyBench/C · seidel-2dPolyBench/C seidel-2d (small dataset)
4.4× faster
Graph algorithms
PolyBench/C · floyd-warshallPolyBench/C floyd-warshall (small dataset)
4.4× faster
Dynamic programming
PolyBench/C · nussinovPolyBench/C nussinov (small dataset)
4.4× faster
Image processing
PolyBench/C · derichePolyBench/C deriche (small dataset)
4.5× faster
Application corpora
age · decryptage WASI CLI decrypts a pinned test ciphertext with an exact plaintext oracle
wago
417.3ms
wazero
3221.7ms
7.7× faster
age-keygen · keygen-publicage-keygen WASI CLI derives the public recipient from a pinned test identity
wago
237.9ms
wazero
892.6ms
3.8× faster
brotli · compressBrotli WASI CLI compresses 2.16 MB of generated JavaScript at quality 10 with an exact output oracle
wago
32.3ms
wazero
541.4ms
16.8× faster
brotli · decompressBrotli WASI CLI decompresses a pinned stream with an exact plaintext oracle
wago
35.4ms
wazero
290.2ms
8.2× faster
cJSON · cjsoncJSON parse, DOM mutation, and compact serialization workload
wago
3.88ms
wazero
37.3ms
9.6× faster
duktape · scriptDuktape WASI CLI parses and aggregates 50,000 generated service events
wago
42.1ms
wazero
180.7ms
4.3× faster
Embench · crc32CRC-32
2.3× faster
Embench · huffbenchHuffman compression
4.3× faster
Embench · matmult-intinteger matrix multiplication
3.3× faster
Embench · nettle-aesAES encryption
3.4× faster
Embench · nettle-sha256SHA-256
2.7× faster
Embench · qrduinoQR encoder
wago
1.53ms
wazero
5.94ms
3.9× faster
esbuild · minifyesbuild WASI CLI minifies 2.16 MB of generated production-shaped JavaScript
wago
1147.8ms
wazero
9455.7ms
8.2× faster
icestorm · generateicebram generates seeded 8-bit BRAM initialization words
wago
33.9ms
wazero
162.4ms
4.8× 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.1ms
wazero
87.4ms
2.4× faster
icestorm · clockicepll computes iCE40 PLL divisors for a fixed 12 to 24 MHz clock request
wago
4.43ms
wazero
19.7ms
4.4× faster
icestorm · unpackiceunpack decodes a 1K FPGA bitstream into its ASCII configuration
2.4× faster
jq · json-transformjq WASI CLI sorts, groups, and aggregates 50,000 generated JSON objects with an exact output oracle
wago
45.1ms
wazero
330.3ms
7.3× faster
json2csv · peoplejson2csv CLI extracts nested fields from newline-delimited JSON into CSV
wago
20.5ms
wazero
330.7ms
16.1× faster
LodePNG · lodepngLodePNG RGBA encoding, decoding, and exact pixel round trip
wago
7.56ms
wazero
67.1ms
8.9× faster
Lua · luaLua 5.4 interpreter running tables, closures, patterns, and GC
8× faster
lzmadec · decompressXZ Utils LZMA decoder CLI decompresses a pinned LZMA stream with an exact output oracle
wago
4.77ms
wazero
23.7ms
5× faster
lzmainfo · headerXZ Utils lzmainfo CLI parses a pinned LZMA header with an exact output oracle
wago
3.67ms
wazero
16.7ms
4.5× faster
php · bucketsPHP 8.2.6 groups five thousand integers into seventeen weighted buckets
wago
866.8ms
wazero
6916.5ms
8× faster
quickjs · scriptQuickJS WASI CLI parses and aggregates 50,000 generated service events
8.5× faster
ripgrep · sourceripgrep searches a JavaScript program and returns exact matching source lines
wago
229.9ms
wazero
1595.3ms
6.9× faster
ruby · bucketsRuby 3.2.2 groups five thousand integers into seventeen weighted buckets
wago
414.7ms
wazero
5821.6ms
14× faster
Sightglass · libsodium-hashlibsodium hash self-test, 1,061 iterations
wago
4.18ms
wazero
28.5ms
6.8× faster
Sightglass · shootout-base64base64 shootout kernel
8.5× faster
sqlite3 · querySQLite WASI shell recursively generates one million rows and computes four exact aggregates
wago
105.4ms
wazero
1021.1ms
9.7× faster
swift-format · format-sourceSwift formatter CLI reformats source from stdin with an exact output oracle
wago
1529.8ms
wazero
12444.6ms
8.1× faster
TACLeBench · bsortself-checking bubble sort
4.4× faster
TinyXML-2 · tinyxml2TinyXML-2 parse, query, and DOM mutation workload
wago
4.11ms
wazero
38.2ms
9.3× faster
tree · ashell-lista-Shell tree command traverses a pinned directory with a-Shell host imports
wago
11.8ms
wazero
33.5ms
2.8× faster
tree · listtree WASI CLI recursively lists a pinned source directory with an exact output oracle
wago
7.53ms
wazero
30.5ms
4.1× faster
trellis · generateecpbram generates a seeded 512-word ECP5 BRAM hex file
2.8× faster
trellis · bitstreamecppack converts a pinned ECP5 text configuration and device database into a bitstream
wago
54.2ms
wazero
165.1ms
3× faster
trellis · clockecppll calculates ECP5 PLL divisors for a fixed 12 to 24 MHz clock request
wago
37.7ms
wazero
99.6ms
2.6× faster
trellis · configecpunpack decodes a pinned ECP5 bitstream into its text configuration
wago
51.5ms
wazero
146.1ms
2.8× faster
uutils/coreutils · base64Rust coreutils base64-encodes a pinned text file
wago
477.7ms
wazero
1813.9ms
3.8× faster
uutils/coreutils · sha256sumRust coreutils hashes a pinned text file with SHA-256
wago
479.2ms
wazero
1848.1ms
3.9× faster
uutils/coreutils · sortRust coreutils sorts a pinned twenty-four-record text file
wago
479.8ms
wazero
3696.6ms
7.7× faster
uutils/coreutils · wcRust coreutils counts lines, words, and bytes in a pinned text file
wago
477.5ms
wazero
1833.2ms
3.8× faster
Wren · wrenWren VM executing classes, closures, collections, and allocation-heavy loops
wago
10.9ms
wazero
82.1ms
7.5× faster
Wren · moduloWren prime sieve using floating modulo, with an exact f64 bit oracle including a fractional remainder
wago
10.8ms
wazero
40.5ms
3.7× faster
xzdec · decompressXZ Utils decoder CLI decompresses a pinned XZ stream with an exact output oracle
wago
6.69ms
wazero
30.1ms
4.5× faster
yosys · counterYosys parses a synchronous Verilog counter, converts processes, and reports exact cell statistics
wago
1436.6ms
wazero
11650.5ms
8.1× faster
Micro modules
tinyminimal module; fixed pipeline overhead
wago
18.3 KB
wazero
268 KB
14.6× less
Calls
dispatchcall_indirect through a function table
wago
39.8 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
wago
27.9 KB
wazero
310 KB
11.1× less
Memory
memorylinear-memory load/store loop
wago
22.3 KB
wazero
295 KB
13.3× 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
87.4 KB
wazero
1018 KB
11.7× less
linked_listsingly-linked list build + dependent-load pointer chase
wago
21.5 KB
wazero
310 KB
14.5× less
matmuldense n x n f64 matrix multiply (fp multiply-add + strided memory)
wago
76.4 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
204 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
84.2 KB
wazero
806 KB
9.6× less
Real-world programs
blake-asAssemblyScript blake-as: BLAKE3 hash (SWAR) of a 4 KiB buffer
wago
214 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
527 KB
wazero
1.9 MB
3.8× less
json-as (simd)AssemblyScript json-as SIMD: serialize/deserialize canonical payload
wago
321 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
808 KB
wazero
10.5 MB
13.2× 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
648 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
638 KB
wazero
5.1 MB
8.2× less
pcre2PCRE2 Unicode pattern compilation, matching, and capture extraction
wago
4.9 MB
wazero
118.3 MB
24.2× less
qoiQOI image encode/decode with exact byte and pixel oracles
wago
113 KB
wazero
833 KB
7.4× less
utf8procutf8proc Unicode compatibility normalization and case folding
wago
781 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.4 MB
wazero
50.6 MB
14.9× less
zlibzlib inflate workload with an exact output oracle
wago
496 KB
wazero
7.3 MB
15.1× 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
109 KB
wazero
964 KB
8.9× less
PolyBench/C · covariancePolyBench/C covariance (small dataset)
wago
101 KB
wazero
875 KB
8.6× less
BLAS
PolyBench/C · gemmPolyBench/C gemm (small dataset)
wago
104 KB
wazero
868 KB
8.4× less
PolyBench/C · gemverPolyBench/C gemver (small dataset)
wago
117 KB
wazero
1.3 MB
11.2× less
PolyBench/C · gesummvPolyBench/C gesummv (small dataset)
wago
99.4 KB
wazero
790 KB
7.9× less
PolyBench/C · symmPolyBench/C symm (small dataset)
wago
111 KB
wazero
964 KB
8.7× less
PolyBench/C · syr2kPolyBench/C syr2k (small dataset)
wago
106 KB
wazero
849 KB
8× 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
107 KB
wazero
859 KB
8× less
Linear algebra
PolyBench/C · 2mmPolyBench/C 2mm (small dataset)
9.4× less
PolyBench/C · 3mmPolyBench/C 3mm (small dataset)
wago
118 KB
wazero
1.4 MB
11.8× less
PolyBench/C · ataxPolyBench/C atax (small dataset)
wago
99.5 KB
wazero
803 KB
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
116 KB
wazero
1.2 MB
10.9× less
PolyBench/C · mvtPolyBench/C mvt (small dataset)
wago
107 KB
wazero
932 KB
8.7× less
Solvers
PolyBench/C · choleskyPolyBench/C cholesky (small dataset)
wago
111 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
109 KB
wazero
1.1 MB
10× less
PolyBench/C · ludcmpPolyBench/C ludcmp (small dataset)
wago
179 KB
wazero
1.7 MB
9.5× less
PolyBench/C · trisolvPolyBench/C trisolv (small dataset)
wago
101 KB
wazero
738 KB
7.3× less
Stencils
PolyBench/C · adiPolyBench/C adi (small dataset)
wago
118 KB
wazero
1.3 MB
11.1× 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
117 KB
wazero
1.2 MB
10.3× less
PolyBench/C · jacobi-1dPolyBench/C jacobi-1d (small dataset)
wago
94.4 KB
wazero
663 KB
7× less
PolyBench/C · jacobi-2dPolyBench/C jacobi-2d (small dataset)
wago
98.8 KB
wazero
745 KB
7.5× less
PolyBench/C · seidel-2dPolyBench/C seidel-2d (small dataset)
wago
64.6 KB
wazero
649 KB
10× less
Graph algorithms
PolyBench/C · floyd-warshallPolyBench/C floyd-warshall (small dataset)
wago
94.9 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.1 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.6× less
brotli · decompressBrotli WASI CLI decompresses a pinned stream with an exact plaintext oracle
wago
12.4 MB
wazero
193.7 MB
15.6× less
cJSON · cjsoncJSON parse, DOM mutation, and compact serialization workload
wago
569 KB
wazero
8.6 MB
15.5× 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
wago
49.3 KB
wazero
371 KB
7.5× less
Embench · huffbenchHuffman compression
wago
193 KB
wazero
1.9 MB
9.9× less
Embench · matmult-intinteger matrix multiplication
wago
107 KB
wazero
1.1 MB
11× less
Embench · nettle-aesAES encryption
wago
205 KB
wazero
1.7 MB
8.3× less
Embench · nettle-sha256SHA-256
wago
324 KB
wazero
1.5 MB
4.8× less
Embench · qrduinoQR encoder
wago
741 KB
wazero
7.8 MB
10.8× less
esbuild · minifyesbuild WASI CLI minifies 2.16 MB of generated production-shaped JavaScript
wago
153.5 MB
wazero
296.2 MB
1.9× less
icestorm · generateicebram generates seeded 8-bit BRAM initialization words
wago
4.1 MB
wazero
10.3 MB
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.4 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.4 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
922 KB
wazero
11.8 MB
13.1× less
lzmainfo · headerXZ Utils lzmainfo CLI parses a pinned LZMA header with an exact output oracle
wago
610 KB
wazero
8.4 MB
14.2× less
php · bucketsPHP 8.2.6 groups five thousand integers into seventeen weighted buckets
wago
100.6 MB
wazero
325.1 MB
3.2× less
quickjs · scriptQuickJS WASI CLI parses and aggregates 50,000 generated service events
wago
4.4 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.2 MB
wazero
390.6 MB
10× less
Sightglass · libsodium-hashlibsodium hash self-test, 1,061 iterations
wago
650 KB
wazero
9.1 MB
14.3× less
Sightglass · shootout-base64base64 shootout kernel
wago
680 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.3 MB
wazero
261.9 MB
1.2× more
TACLeBench · bsortself-checking bubble sort
wago
39.9 KB
wazero
471 KB
11.8× less
TinyXML-2 · tinyxml2TinyXML-2 parse, query, and DOM mutation workload
wago
823 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.4× 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.7× 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.6 MB
5× less
uutils/coreutils · sha256sumRust coreutils hashes a pinned text file with SHA-256
wago
33.3 MB
wazero
165.6 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
983 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
2.3× faster
Calls
dispatchcall_indirect through a function table
2.2× faster
fib_recrecursion; call/return heavy
2.2× faster
Calls and memory
memory_treerecursive call tree with load/store churn at every node
3.1× 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)
10.6× 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)
10.6× faster
nbodyBenchmarks-Game N-body: leapfrog solar-system integration (f64 mul/add/div/sqrt)
10.7× faster
raytracerecursive Whitted ray tracer: n x n frame, 4 spheres + checker plane, depth-4 mirrors (heavy f64 vector math)
10.3× faster
sha256standards-correct SHA-256 of an n-KiB buffer (i32 rotate/shift/xor/add, 64-round)
9× faster
Real-world programs
blake-asAssemblyScript blake-as: BLAKE3 hash (SWAR) of a 4 KiB buffer
wago
10.2µs
wazero
11.4µs
1.1× faster
json-asAssemblyScript json-as (SWAR): serialize/deserialize a struct
1.1× slower
utf-asAssemblyScript utf-as: UTF-8 -> UTF-16 transcode (SWAR) of a 4 KiB buffer
wago
20.3µs
wazero
15.3µs
1.3× slower
Real-world SIMD
blake-as (simd)AssemblyScript blake-as SIMD: BLAKE3 hash of a 4 KiB buffer
wago
10.3µs
wazero
26.2µs
2.6× faster
json-as (simd)AssemblyScript json-as SIMD: serialize/deserialize canonical payload
wago
16.2µs
wazero
31.6µs
1.9× faster
utf-as (simd)AssemblyScript utf-as SIMD: UTF-8 length and validation of mixed text
wago
21.8µs
wazero
33.2µs
1.5× faster
Semantic corpus
blake3BLAKE3 reference implementation with published hash, keyed-hash, and key-derivation vectors
9.9× faster
coremarkCoreMark 1.0 integer, list, matrix, and state-machine workload
wago
10.1µs
wazero
30.2µs
3× faster
drwavdr_wav in-memory PCM decoding, chunked reads, and seeking
wago
10.7µs
wazero
13.2µs
1.2× faster
fastfloatfast_float decimal parsing across IEEE-754 boundary values
parity
kissfftKissFFT 257-point complex forward and inverse transforms
wago
10.1µs
wazero
13.9µs
1.4× faster
libtommathLibTomMath modular exponentiation, GCD, and serialization
wago
11.2µs
wazero
13.8µs
1.2× faster
lz4LZ4 compression/decompression with exact size and byte oracles
14× faster
minizminiz deflate compression and decompression round trip
3.7× faster
monocypherMonocypher authenticated encryption and streaming BLAKE2b
wago
10.1µs
wazero
12.6µs
1.3× faster
nanosvgNanoSVG parsing and shape/path traversal workload
wago
15.7µs
wazero
16.8µs
1.1× faster
pcre2PCRE2 Unicode pattern compilation, matching, and capture extraction
wago
61.4µs
wazero
74.8µs
1.2× faster
qoiQOI image encode/decode with exact byte and pixel oracles
16.9× faster
utf8procutf8proc Unicode compatibility normalization and case folding
4× slower
xxhashXXH64 hashing across short, boundary, and large inputs
1.6× faster
yyjsonyyjson parse, DOM edit, and serialization workload
wago
17.5µs
wazero
32.7µs
1.9× faster
zlibzlib inflate workload with an exact output oracle
wago
11.6µs
wazero
60.5µs
5.2× faster
zstdZstandard decompression workload with an exact output oracle
15.3× faster
Statistics
PolyBench/C · correlationPolyBench/C correlation (small dataset)
1.3× faster
PolyBench/C · covariancePolyBench/C covariance (small dataset)
1.2× faster
BLAS
PolyBench/C · gemmPolyBench/C gemm (small dataset)
1.3× faster
PolyBench/C · gemverPolyBench/C gemver (small dataset)
1.3× faster
PolyBench/C · gesummvPolyBench/C gesummv (small dataset)
1.2× faster
PolyBench/C · symmPolyBench/C symm (small dataset)
1.2× faster
PolyBench/C · syr2kPolyBench/C syr2k (small dataset)
wago
10.1µs
wazero
13.3µs
1.3× faster
PolyBench/C · syrkPolyBench/C syrk (small dataset)
1.3× faster
PolyBench/C · trmmPolyBench/C trmm (small dataset)
1.3× faster
Linear algebra
PolyBench/C · 2mmPolyBench/C 2mm (small dataset)
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.1µs
wazero
12.6µs
1.3× faster
PolyBench/C · doitgenPolyBench/C doitgen (small dataset)
wago
10.1µs
wazero
12.6µs
1.3× faster
PolyBench/C · mvtPolyBench/C mvt (small dataset)
1.3× faster
Solvers
PolyBench/C · choleskyPolyBench/C cholesky (small dataset)
1.2× faster
PolyBench/C · durbinPolyBench/C durbin (small dataset)
1.3× faster
PolyBench/C · gramschmidtPolyBench/C gramschmidt (small dataset)
1.4× faster
PolyBench/C · luPolyBench/C lu (small dataset)
1.2× faster
PolyBench/C · ludcmpPolyBench/C ludcmp (small dataset)
1.3× faster
PolyBench/C · trisolvPolyBench/C trisolv (small dataset)
1.3× faster
Stencils
PolyBench/C · adiPolyBench/C adi (small dataset)
1.3× faster
PolyBench/C · fdtd-2dPolyBench/C fdtd-2d (small dataset)
1.2× faster
PolyBench/C · heat-3dPolyBench/C heat-3d (small dataset)
1.2× faster
PolyBench/C · jacobi-1dPolyBench/C jacobi-1d (small dataset)
1.3× faster
PolyBench/C · jacobi-2dPolyBench/C jacobi-2d (small dataset)
1.3× faster
PolyBench/C · seidel-2dPolyBench/C seidel-2d (small dataset)
1.3× faster
Graph algorithms
PolyBench/C · floyd-warshallPolyBench/C floyd-warshall (small dataset)
1.3× faster
Dynamic programming
PolyBench/C · nussinovPolyBench/C nussinov (small dataset)
1.3× faster
Image processing
PolyBench/C · derichePolyBench/C deriche (small dataset)
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.5ns
wazero
55.7ns
3.4× faster
Calls
dispatchapply · calls corpus
wago
18.1ns
wazero
64.8ns
3.6× faster
fib_recfib · calls corpus
4.6× faster
Calls and memory
memory_treerun · calls+memory corpus
4.4× faster
Memory
memorysum · memory corpus
wago
194.5ns
wazero
369ns
1.9× faster
Scale
many_funcsrun · scale corpus
wago
15.8ns
wazero
28.9ns
1.8× faster
Compute kernels
fannkuchrun · compute corpus
wago
1.05ms
wazero
2.83ms
2.7× faster
linked_listsum · compute corpus
1.3× faster
matmulrun · compute corpus
6.8× faster
nbodystep · compute corpus
2.7× faster
raytracerender · compute corpus
2× faster
sha256hashN · compute corpus
3× faster
Real-world programs
blake-ashashN · real corpus
parity
json-asdeserializeN · real corpus
wago
38.3µs
wazero
62.4µs
1.6× faster
json-asserializeN · real corpus
wago
20.7µs
wazero
30.7µs
1.5× faster
utf-asconvertN · real corpus
1.4× faster
Real-world SIMD
blake-as (simd)hashN · real-simd corpus
2.4× faster
json-as (simd)serialize + deserialize · geometric mean
3.2× faster
utf-as (simd)convertN · real-simd corpus
2.6× faster
utf-as (simd)validateN · real-simd corpus
2.6× faster
Semantic corpus
blake3blake3_derive_key · semantic corpus
2.2× faster
blake3blake3_hash · semantic corpus
2.2× faster
blake3blake3_keyed_hash · semantic corpus
2.1× faster
coremarkcoremark_run · semantic corpus
wago
34.7ms
wazero
107.6ms
3.1× faster
drwavdrwav_run · semantic corpus
1.1× faster
fastfloatfastfloat_run · semantic corpus
wago
509.9ns
wazero
517.8ns
parity
kissfftkissfft_run · semantic corpus
1.4× faster
libtommathlibtommath_run · semantic corpus
1.8× faster
lz4lz4_compress_run · semantic corpus
3.2× faster
lz4lz4_decompress_run · semantic corpus
5.1× faster
minizminiz_run · semantic corpus
wago
4.65ms
wazero
5.87ms
1.3× faster
monocyphermonocypher_run · semantic corpus
wago
36.7µs
wazero
33.2µs
1.1× slower
nanosvgnanosvg_run · semantic corpus
1.8× faster
pcre2pcre2_run · semantic corpus
3.7× faster
qoiqoi_decode_run · semantic corpus
wago
11.8µs
wazero
27.5µs
2.3× faster
qoiqoi_encode_run · semantic corpus
wago
14.5µs
wazero
26.1µs
1.8× faster
utf8procutf8proc_run · semantic corpus
wago
898.3ns
wazero
1.3µs
1.4× faster
xxhashxxhash_run · semantic corpus
1.5× faster
yyjsonyyjson_run · semantic corpus
wago
809.9ns
wazero
2.6µs
3.2× faster
zlibzlib_inflate_run · semantic corpus
1.9× faster
zstdzstd_decompress_run · semantic corpus
2.7× faster
Statistics
polybench-correlationpolybench_run · statistics corpus
2× faster
polybench-covariancepolybench_run · statistics corpus
1.9× faster
BLAS
polybench-gemmpolybench_run · blas corpus
2.6× faster
polybench-gemverpolybench_run · blas corpus
2.2× faster
polybench-gesummvpolybench_run · blas corpus
wago
44.9µs
wazero
78.9µs
1.8× faster
polybench-symmpolybench_run · blas corpus
2.5× faster
polybench-syr2kpolybench_run · blas corpus
2.5× faster
polybench-syrkpolybench_run · blas corpus
2.2× faster
polybench-trmmpolybench_run · blas corpus
1.8× 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
wago
37.1µs
wazero
57.3µs
1.5× faster
polybench-bicgpolybench_run · linear-algebra corpus
wago
61.6µs
wazero
88.7µs
1.4× faster
polybench-doitgenpolybench_run · linear-algebra corpus
1.9× faster
polybench-mvtpolybench_run · linear-algebra corpus
wago
37.5µs
wazero
83.9µs
2.2× faster
Solvers
polybench-choleskypolybench_run · solver corpus
wago
1.39ms
wazero
2.47ms
1.8× faster
polybench-durbinpolybench_run · solver corpus
wago
11.8µs
wazero
21.4µs
1.8× faster
polybench-gramschmidtpolybench_run · solver corpus
1.7× faster
polybench-lupolybench_run · solver corpus
wago
1.44ms
wazero
2.95ms
2× faster
polybench-ludcmppolybench_run · solver corpus
wago
1.45ms
wazero
2.78ms
1.9× faster
polybench-trisolvpolybench_run · solver corpus
wago
14.3µs
wazero
32.2µs
2.3× faster
Stencils
polybench-adipolybench_run · stencil corpus
wago
1.86ms
wazero
1.90ms
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
3.93ms
wazero
3.98ms
parity
Graph algorithms
polybench-floyd-warshallpolybench_run · graph corpus
wago
5.06ms
wazero
9.39ms
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.14ms
wazero
6.91ms
1.3× faster
age-keygen · keygen-publicage-keygen WASI CLI derives the public recipient from a pinned test identity
wago
2.85ms
wazero
3.49ms
1.2× faster
brotli · compressBrotli WASI CLI compresses 2.16 MB of generated JavaScript at quality 10 with an exact output oracle
wago
758.4ms
wazero
1145.9ms
1.5× faster
brotli · decompressBrotli WASI CLI decompresses a pinned stream with an exact plaintext oracle
1.5× slower
cJSON · cjsoncJSON parse, DOM mutation, and compact serialization workload
wago
52.4µs
wazero
21.9µs
2.4× slower
duktape · scriptDuktape WASI CLI parses and aggregates 50,000 generated service events
wago
313.6ms
wazero
535.2ms
1.7× faster
Embench · crc32CRC-32
parity
Embench · huffbenchHuffman compression
1.5× faster
Embench · matmult-intinteger matrix multiplication
1.2× faster
Embench · nettle-aesAES encryption
1.8× faster
Embench · nettle-sha256SHA-256
1.2× faster
Embench · qrduinoQR encoder
1.7× faster
esbuild · minifyesbuild WASI CLI minifies 2.16 MB of generated production-shaped JavaScript
wago
534.6ms
wazero
1152ms
2.2× 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× slower
icestorm · packicepack reconstructs a 1K FPGA bitstream from an ASCII configuration
wago
50.8ms
wazero
60.5ms
1.2× faster
icestorm · clockicepll computes iCE40 PLL divisors for a fixed 12 to 24 MHz clock request
wago
68.8µs
wazero
24.1µs
2.9× slower
icestorm · unpackiceunpack decodes a 1K FPGA bitstream into its ASCII configuration
wago
273.5ms
wazero
517.5ms
1.9× faster
jq · json-transformjq WASI CLI sorts, groups, and aggregates 50,000 generated JSON objects with an exact output oracle
wago
467.1ms
wazero
786.5ms
1.7× 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.51ms
wazero
4.25ms
1.7× faster
Lua · luaLua 5.4 interpreter running tables, closures, patterns, and GC
1.8× faster
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
81.5µs
wazero
32.1µs
2.5× slower
php · bucketsPHP 8.2.6 groups five thousand integers into seventeen weighted buckets
wago
9.52ms
wazero
8.09ms
1.2× slower
quickjs · scriptQuickJS WASI CLI parses and aggregates 50,000 generated service events
wago
162.7ms
wazero
266.1ms
1.6× faster
ripgrep · sourceripgrep searches a JavaScript program and returns exact matching source lines
wago
1.52ms
wazero
1.17ms
1.3× slower
ruby · bucketsRuby 3.2.2 groups five thousand integers into seventeen weighted buckets
wago
23.8ms
wazero
51.3ms
2.1× faster
Sightglass · libsodium-hashlibsodium hash self-test, 1,061 iterations
4× faster
Sightglass · shootout-base64base64 shootout kernel
wago
3.15ms
wazero
6.21ms
2× faster
sqlite3 · querySQLite WASI shell recursively generates one million rows and computes four exact aggregates
wago
275.8ms
wazero
782.7ms
2.8× faster
swift-format · format-sourceSwift formatter CLI reformats source from stdin with an exact output oracle
parity
TACLeBench · bsortself-checking bubble sort
wago
13.2µs
wazero
22.9µs
1.7× faster
TinyXML-2 · tinyxml2TinyXML-2 parse, query, and DOM mutation workload
wago
64.2µs
wazero
59.1µs
1.1× slower
tree · ashell-lista-Shell tree command traverses a pinned directory with a-Shell host imports
1.8× slower
tree · listtree WASI CLI recursively lists a pinned source directory with an exact output oracle
2× slower
trellis · generateecpbram generates a seeded 512-word ECP5 BRAM hex file
wago
1.89ms
wazero
1.25ms
1.5× slower
trellis · bitstreamecppack converts a pinned ECP5 text configuration and device database into a bitstream
wago
1105.6ms
wazero
1059.9ms
parity
trellis · clockecppll calculates ECP5 PLL divisors for a fixed 12 to 24 MHz clock request
1.5× slower
trellis · configecpunpack decodes a pinned ECP5 bitstream into its text configuration
wago
4340.6ms
wazero
4628.7ms
1.1× faster
uutils/coreutils · base64Rust coreutils base64-encodes a pinned text file
2.4× slower
uutils/coreutils · sha256sumRust coreutils hashes a pinned text file with SHA-256
2.7× slower
uutils/coreutils · sortRust coreutils sorts a pinned twenty-four-record text file
wago
2.29ms
wazero
1.13ms
2× slower
uutils/coreutils · wcRust coreutils counts lines, words, and bytes in a pinned text file
2.4× 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× faster
yosys · counterYosys parses a synchronous Verilog counter, converts processes, and reports exact cell statistics
wago
5.70ms
wazero
8.33ms
1.5× faster