Skip to content

v0.8.1 — honest benchmark numbers (final translit-rs release)

Choose a tag to compare

@raeq raeq released this 11 Jun 13:14
778b969

The final translit-rs release and the close of the 0.8 performance-hardening arc.

The project continues as disarm from 0.9.0 (#264). 0.8.1 ships honest, production-true benchmark numbers before the rename.

Changed

  • Fresh-string benchmark regime (#277, #302): every timed call now receives a newly constructed str, the way production traffic always does. The prior cached-object measurement let CPython's per-object AsUTF8 cache hide ~105–137 ns/call of UTF-8 encode cost that only translit pays (pure-Python comparators never call AsUTF8), flattering it. JSON records now carry regime: fresh-string/v2; pre-flip history is the cached v1 regime and must not be compared across regimes.
  • README short-string figures updated to the measured fresh-regime values: ~17× vs Unidecode (Latin), ~14× (mixed scripts), ~13× (Cyrillic/Greek); ~65 ns ASCII passthrough; the four-cell Unidecode-own sweep still holds (~1.3× on Unidecode's strongest case to ~25×).

Install: pip install translit-rs==0.8.1

Full changelog: https://github.com/raeq/translit/blob/main/CHANGELOG.md