Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Repository files navigation

Multi-Language Serializer Benchmark

Site Dashboard Serialization 101 License: MIT Languages

Compare 200+ serialization libraries across 13 languages.

Start here
Home Documentation
Numbers Live dashboard
Experiments One-question tests
Compliance RFC / spec catalog
Learn Serialization 101–401
Benchmarks How we measure · Metrics

Live Dashboard: language and data-type filters, speed vs size scatter, and throughput ranking
The live Dashboard: pick a language and data type, then read speed vs size and the ranking.


Who it is for

Audience Use case Course
Computer science students Theory, history, worked examples 101, 201
System integrators Pick formats that fit payloads and runtimes 301
Researchers Reproducible measurement and experiments Methodology · 301
Serializer authors Add a codec, version A/B, regression checks Adding a serializer · 401

Supported languages

Adding a language · Adding a serializer.


Try it: two quality questions

Requires a recent Python 3 and uv. No Docker.

git clone https://github.com/leo-gan/GLD.SerializerBenchmark.git
cd GLD.SerializerBenchmark

./scripts/check-host-requirements.sh python   # optional: see what's missing
./scripts/install-host-requirements.sh python # optional: user-local toolchains

# How fast / how big?
cd python && ./scripts/run-benchmarks.sh smoke
# → logs/python/YYYY-MM-DD-HHMMSS.csv

# Does it match the cited RFC / spec section?
./scripts/run-compliance.sh
# → logs/compliance/YYYY-MM-DD-HHMMSS.json

Then open the Python Dashboard for timings, or Dashboard · Compliance for spec misses. Catalog notes (not live numbers) live under Compliance.

Prefer Rust benches? ./scripts/run-all-benchmarks.sh --mode smoke --lang rust


Quick start

Benchmark runners 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 (compilers/runtimes only)
./scripts/check-host-requirements.sh
./scripts/install-host-requirements.sh
./scripts/install-host-requirements.sh csharp   # one language

# 2) Smoke one language
./python/scripts/run-benchmarks.sh smoke
# or: ./rust/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 (writes reports/; Dashboard via sync-data.py)
cd analysis && uv pip install -e .   # or: pip install -e .
analyze-benchmarks
analyze-benchmarks -l python
analyze-benchmarks --compare-a rust:2026-07-09-194122 --compare-b rust:latest

Modes: smoke (2 reps) · all-single (10) · full (100) · research (500).

analyze-benchmarks writes reports/; Dashboard via sync-data.py. Review and commit before publish-docs deploys the site.


Test data

Shared data types: message, document, telemetry, strings, and event.

Catalog and defaults: schemas/data_catalog_v2.yaml. Run matrices: config/library/.
Docs: Test data.


Statistics

Compare serializers within one language (and ideally one category). Cross-language absolute times are directional only — runtimes and GCs differ.

About

Serialization benchmarks (13 languages, 200+ codecs), Compliance tests, Serialization 101–401 course

Topics

Resources

Stars

22 stars

Watchers

3 watching

Forks

Releases

Used by

Contributors

Languages