Skip to content

v0.3.1

Choose a tag to compare

@kishankumarhs kishankumarhs released this 30 Jul 17:54

Polyglot v0.3.1 (draft)

Highlights

  • Benchmark charts land in the main README (SVG) with regenerable PNG/SVG from summary.json
  • Python vs stdlib logging and .NET vs Serilog competitor harnesses + bindings chart
  • Bench suite reliability: scale CSV actually produced, Node bindings built before Node benches, gofmt import fix

Benchmarks & docs

  • Embed throughput / P99 latency / scale / FFI / Python·.NET charts in README.md
  • Expand bench/README.md: rich vs cross vs FFI payload shapes, fairness notes, Node FFI tax (stringify → C string → Go unmarshal → rematchal)
  • Chart pipeline writes SVG + PNG; empty scale data shows an explicit placeholder instead of a flat zero line
  • Scale chart uses even x-spacing for 1→64 writers and y-axis labels
  • make bench / bench-smoke build bindings/node before running Node benches (fixes CI MODULE_NOT_FOUND on dist/index.js)
  • BENCH_SCALE_CSV=1 runs TestScaleCSV so scale.csv / scale chart are real
  • New: bench/python/bench.py, bench/dotnet/ (Serilog competitor)
  • Summarizer/charts ingest python.txt / dotnet.txtbindings_opsbindings.svg

Fixes

  • internal/logger/logger.go: gofmt import order (maps alphabetized) — unblocks CI format check
  • Release workflow: build Node bindings before release benches; emit scale CSV on release runners

Notes / caveats

  • Node still trails Pino on sync file: expected while every call double-serializes across FFI. Buffer/Uint8Array ABI path is documented as next work, not shipped
  • Binding benches include FFI tax; do not compare Go Zap numbers to Node/Python/.NET as one runtime
  • Absolute ops/s vary by machine; compare relative deltas on the same runner (bench/HISTORY.md)