v0.8.1 — honest benchmark numbers (final translit-rs release)
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-objectAsUTF8cache hide ~105–137 ns/call of UTF-8 encode cost that onlytranslitpays (pure-Python comparators never callAsUTF8), flattering it. JSON records now carryregime: fresh-string/v2; pre-flip history is the cachedv1regime 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