Reproduce Our Data

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
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
- Arkhe — Bundle Size — Utility function sizes vs Lodash, es-toolkit, Remeda
- Kanon — Performance — Validation benchmarks vs Zod, Valibot, AJV
- Taphos — Performance — Deprecated utilities vs es-toolkit, Lodash
- Zygos — Performance — Result pattern benchmarks vs Neverthrow, fp-ts