Scientific, multi-language suite for measuring and comparing serialization libraries.
- Serialization 101 — a starting point for anyone who wants to understand data serialization—students, data scientists, backend engineers, and systems architects.
- Benchmarks
- 📊 Dashboard
| Audience | Use case |
|---|---|
| Computer Science Students | Theory, history, examples |
| Researchers | Reproducible methods, CIs, configurable payloads, metrics |
| Serializer authors | Measure, compare, and improve |
| System integrators | Find serializers that fit custom payloads and environments |
- C# (.NET) — 36 serializers registered
- Python — 16
- Rust — 15
- C — 20
- JavaScript — 19
- Go — 19
- Java — 18
- C++ — 26+
Harnesses run natively on the host (no Docker). Prepare toolchains once, then run benchmarks (project deps like uv sync / npm install still happen inside each runner).
# 1) Host toolchains (separate step — compilers/runtimes only)
./scripts/check-host-requirements.sh # verify
./scripts/install-host-requirements.sh # user-local install (no sudo) where possible
./scripts/install-host-requirements.sh csharp # one language
# 2) Smoke one language
./<lang>/scripts/run-benchmarks.sh smoke
# Orchestrator: all languages or one language
./scripts/run-all-benchmarks.sh --mode all-single
./scripts/run-all-benchmarks.sh --mode full --lang rust
# Analysis package (from analysis/)
cd analysis && uv pip install -e . # or: pip install -e .
analyze-benchmarks # publish snapshot: tables + plots into docs/
analyze-benchmarks -l python
analyze-benchmarks -l python --logs python/logs/python
analyze-benchmarks --compare-a rust:2026-07-09-194122 --compare-b rust:latestModes: smoke (2 reps) · all-single (10) · full (100) · research (500).
After regenerating results into docs/analysis/, review and commit before publish-docs deploys the site.
Test data types: message, document, telemetry, strings, and event.
Catalog and defaults: schemas/data_catalog_v2.yaml. Run matrices: config/library/.
Docs: Test Data.