NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #92 most downloaded on Packagist
Portable ASCII library - performance optimized (ascii) string functions for php.
Last release 5 months ago
26 Apr 2026
Ships unpredictably
gaps range from 9 days to 2.7 years
Nearly every release is documented
notes for 40 of 40 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
40 releases · first in 2019
[*]: update the changelog
[*]: update the changelog
ASCII::to_ascii() regression coverage to match current degree-sign handling and lock in cache-order behavior across cleanup, transliteration, and retention modesMerge pull request #127 from voku/copilot/blind-spot-analysis-perform…
One column per quarter.
ASCII::to_ascii() / ASCII::to_transliterate() hot paths, add benchmark coverage, and document current benchmark resultsclean(), to_ascii(), and to_transliterate() for malformed, overlong, surrogate, and out-of-range sequences[*]: update the changelog
[*]: update the changelog
[*]: update the changelog
[*]: update the changelog
[*]: update the changelog
[*]: update the changelog
Revert "Revert "[+]: prefer "Russian - Passport (2013), ICAO" instead…
Revert "Revert "[+]: prefer "Russian - Passport (2013), ICAO" instead…
[*]: update the changelog
[*]: update the changelog
Merge branch 'master' of ssh://github.com/voku/portable-ascii into ma…
Merge branch 'master' of ssh://github.com/voku/portable-ascii into ma…
[+]: "ASCII::normalize_whitespace()" -> support for "VERTICAL TAB" v2.1
[+]: "ASCII::normalize_whitespace()" -> support for "VERTICAL TAB" v2.1
[*]: update the changelog
[*]: update the changelog
add some missing replacements in U+23xx page (thanks @marcoffee)
fix "Georgian" char-mapping (thanks @waska14)
add "Bengali" (bn) language support (thanks @eliyas5044)
fix merge ASCII transliterations from "avian2/unidecode" (python) -> https://github.com/avian2/unidecode/
merge ASCII transliterations from "avian2/unidecode" (python) -> https://github.com/avian2/unidecode/
"composer.json" -> remove "autoload-dev" stuff from "autoload"
ASCII::to_ascii() -> fix extra symbol handling in the regex
ASCII::to_slugify() -> fix php warning from empty "separator"
small optimization for "ASCII::to_ascii()" performance
fix possible wrong type from "getDataIfExists()" -> e.g. a bug reported where "/data/" was modified
optimize "ASCII::to_ascii()" performance
- use "@psalm-pure" v2
- use "@psalm-pure"
- use "@psalm-immutable"
- optimize the performance v2 - more fixes for non-ascii regex
- fix regex for non-ascii
optimize the performance, via single char replacements
"ascii_extras" -> convert the static content into ascii -> e.g.: instead of replacing "+" with "più" we use "piu" (Italian), because we want to use as
fix "ASCII::remove_invisible_characters()" -> do not remove invisible encoded url strings by default
fix static cache for "ASCII::charsArrayWithOneLanguage"
fix "Turkish" mapping -> 'ä' -> 'a'
fix language parameter usage with e.g. "de_DE"
fix "ASCII::to_slugify" -> remove unicode chars
add transliteration "fr" (was supported before, but with chars from other languages)
fix language depending ASCII chars (the order matters)
fix bulgarian ASCII chars | thanks @bgphp
"charsArray()" -> add access to "ASCII::$ASCII_MAPS*""
"to_slugify()" -> use the extra ascii array
add + split extra ascii replacements
- initial commit
Your coding agent can read these notes before it upgrades. Set up the MCP server →