Skip to main content

reproduce our data Reproduce Our Data

Diogenes testing Pithos benchmarks

Every number on these comparison pages is auto-generated from source.

If, like Diogenes, you trust no claim at face value, here's everything you need to verify ours.

Benchmarked on MacBook Pro 2023 (M2 Pro), 32 GB RAM, macOS 26.2, plugged in.
Results on battery show similar relative differences.

Setup

Clone the repository and install dependencies:

git clone https://github.com/mopi1402/pithos.git
cd pithos
pnpm install
Interactive CLI

Pithos includes an interactive CLI that lets you browse and run all benchmark and generation commands from a visual menu:

pnpm cli

Navigate with arrow keys, select a command, and run it directly.

Bundle Size

Measure any import manually with esbuild:

# Single function
echo 'import { chunk } from "pithos/arkhe/array/chunk"' | \
esbuild --bundle --minify | gzip -c | wc -c

# Kanon schema
echo 'import { string, object, parse } from "pithos/kanon"' | \
esbuild --bundle --minify | gzip -c | wc -c

Regenerate the full comparison data used in the bundle size comparison pages with these commands:

# Arkhe & Taphos bundle sizes
pnpm doc:generate-arkhe-taphos-bundle-sizes

# Kanon bundle sizes
cd packages/main/website
npx tsx scripts/generate-bundle-data.ts

# Zygos bundle sizes
pnpm doc:generate-zygos-bundle-sizes

Performance Benchmarks

Run benchmarks per module:

# Arkhe
pnpm benchmark:arkhe
pnpm doc:generate:arkhe:benchmarks-results

# Kanon
pnpm benchmark:kanon realworld all

# Taphos
pnpm benchmark:taphos
pnpm doc:generate:taphos:benchmarks-results

# Zygos
pnpm benchmark:zygos
pnpm doc:generate:zygos:benchmarks-results

Environment

Results may vary depending on your hardware and Node.js version. Our published data is generated on a consistent environment to ensure fair comparisons across libraries.


See the Results