voku/portable-ascii
Portable ASCII library - performance optimized (ascii) string functions for php.
2.1.1
461M downloads/mo
#93 most downloaded on composer
voku/portable-ascii
What this package is like to depend on
Last release 3 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
2 releases in the last 12 months
see the full history below
Release timeline
40 releases · Sep 2019 to Apr 2026
2020
2021
2022
2023
2024
2025
2026
Releases
latest 40-
2.1.126 Apr 2026Release notes
Open source →- fix long-string
ASCII::to_ascii()regression coverage to match current degree-sign handling and lock in cache-order behavior across cleanup, transliteration, and retention modes
- fix long-string
-
2.1.016 Apr 2026Release notes
Open source →- run all checks and tests up to PHP 8.5
- raise the minimum PHP version from 7.0 to 7.1
- update PHPUnit dev-dependency to support ~8.5 || ~9.6 || ~10.5 || ~11.5
- modernize CI: add a required PHPStan job, update the GitHub Actions matrix, and refresh the AppVeyor config
- optimize
ASCII::to_ascii()/ASCII::to_transliterate()hot paths, add benchmark coverage, and document current benchmark results - harden invalid UTF-8 handling in
clean(),to_ascii(), andto_transliterate()for malformed, overlong, surrogate, and out-of-range sequences - expand regression coverage for malformed UTF-8, transliteration boundaries, slug loops, and other edge cases
-
2.0.321 Nov 2024 -
2.0.221 Nov 2024 -
2.0.108 Mar 2022Release notes
Open source →- "To people of Russia": There is a war in Ukraine right now. The forces of the Russian Federation are attacking civilians.
- optimize some phpdocs
-
2.0.024 Jan 2022Release notes
Open source →- prefer "Russian - Passport (2013), ICAO" instead of "Russian - GOST 7.79-2000(B)"
- fix "Ukrainian" char-mapping (thanks to @Andr1yk0)
- fix "Persian" char-mapping (thanks to @frost-cyber)
-
1.6.124 Jan 2022Release notes
Open source →- revert: prefer "Russian - Passport (2013), ICAO" instead of "Russian - GOST 7.79-2000(B)"
- revert: fix "Ukrainian" char-mapping (thanks to @Andr1yk0)
- revert: fix "Persian" char-mapping (thanks to @frost-cyber)
-
1.6.024 Jan 2022Release notes
Open source →- prefer "Russian - Passport (2013), ICAO" instead of "Russian - GOST 7.79-2000(B)"
- fix "Ukrainian" char-mapping (thanks to @Andr1yk0)
- fix "Persian" char-mapping (thanks to @frost-cyber)
- fix "ASCII::normalize_whitespace()" -> "CARRIAGE RETURN" is more like "<br>" and no "\n"
- add "ASCII::to_ascii_remap()" -> this method will return broken characters and is only for special cases
-
1.5.612 Nov 2020Release notes
Open source →- "ASCII::normalize_whitespace()" -> can now also remove "control characters" if needed v2
-
1.5.511 Nov 2020Release notes
Open source →- fix "Greeklish" char-mapping (thanks @sebdesign)
- "ASCII::normalize_whitespace()" -> can now also remove "control characters" if needed
-
1.5.408 Nov 2020Release notes
Open source →- add some missing replacements in U+23xx page (thanks @marcoffee)
- fix "Russian" char-mapping (thanks @ilyahoilik)
- running test with PHP 8.0 rc3
-
1.5.322 Jul 2020 -
1.5.215 Jun 2020Release notes
Open source →- add "Bengali" (bn) language support (thanks @eliyas5044)
- fix "Portuguese" char-mapping
- reduce the file size (removed extra comments from "avian2/unidecode")
-
1.5.126 May 2020Release notes
Open source →- fix merge ASCII transliterations from "avian2/unidecode" (python) -> https://github.com/avian2/unidecode/
-
1.5.023 May 2020Release notes
Open source →- merge ASCII transliterations from "avian2/unidecode" (python) -> https://github.com/avian2/unidecode/
-
1.4.1123 May 2020Release notes
Open source →- "composer.json" -> remove "autoload-dev" stuff from "autoload"
- "voku/php-readme-helper" -> auto-generate the API documentation in the README
-
1.4.1013 Mar 2020Release notes
Open source →- ASCII::to_ascii() -> fix extra symbol handling in the regex
- ASCII::to_ascii() -> fix for languages with multi-length-special-char (e.g. Greek -> 'ει' => 'i')
-
1.4.906 Mar 2020 -
1.4.806 Feb 2020 -
1.4.727 Jan 2020Release notes
Open source →- fix possible wrong type from "getDataIfExists()" -> e.g. a bug reported where "/data/" was modified
- inline variables
- do not use "=== true" for "bool"-types
-
1.4.623 Dec 2019Release notes
Open source →- optimize "ASCII::to_ascii()" performance
- add "armenian" chars
- add "ASCII:getAllLanguages()"
-
1.4.519 Dec 2019 -
1.4.419 Dec 2019 -
1.4.318 Dec 2019 -
1.4.213 Dec 2019 -
1.4.113 Dec 2019 -
1.4.013 Dec 2019 -
1.3.612 Dec 2019Release notes
Open source →- "ascii_extras" -> convert the static content into ascii -> e.g.: instead of replacing "+" with "più" we use "piu" (Italian), because we want to use ascii anyway
-
1.3.511 Nov 2019Release notes
Open source →- fix "ASCII::remove_invisible_characters()" -> do not remove invisible encoded url strings by default
-
1.3.414 Oct 2019 -
1.3.314 Oct 2019 -
1.3.214 Oct 2019Release notes
Open source →- fix language parameter usage with e.g. "de_DE"
- re-add missing "extra"-mapping chars
-
1.3.113 Oct 2019Release notes
Open source →- fix "ASCII::to_slugify" -> remove unicode chars
- add more test for ascii chars in the mapping
- fix non ascii chars in the mapping
-
1.3.012 Oct 2019Release notes
Open source →- add transliteration "fr" (was supported before, but with chars from other languages)
- add transliteration "ru" - Passport (2013), ICAO
- add transliteration "ru" - GOST 7.79-2000(B)
- add transliteration "el" - greeklish
- add transliteration "zh"
- add transliteration "nl"
- add transliteration "it"
- add transliteration "mk"
- add transliteration "pt"
- add constants -> ASCII::*LANGUAGE_CODES
- add more special latin chars / (currency) symbols
- add simple tests for all supported languages
- optimize "Russian" to ASCII (via "translit.ru")
- optimize performance of string replacement
- optimize performance of array merging
- optimize phpdoc comments
- "ASCII::to_transliterate" -> use "transliterator_create" + static cache
- "ASCII::to_ascii" -> fix "remove unsupported chars"
- "ASCII::to_ascii" -> add some more special chars
- run/fix static analyse via "pslam" + "phpstan"
- auto fix code style via "php-cs-fixer"
- fix transliteration for "german"
- fix transliteration for "persian" (thanks @mardep)
- fix transliteration for "polish" (thanks @dariusz.drobisz)
- fix transliteration for "bulgarian" (thanks @mkosturkov)
- fix transliteration for "croatian" (thanks @ludifonovac)
- fix transliteration for "serbian" (thanks @ludifonovac)
- fix transliteration for "swedish" (thanks @nicholasruunu)
- fix transliteration for "france" (thanks @sharptsa)
- fix transliteration for "serbian" (thanks @nikolaposa)
- fix transliteration for "czech" (thanks @slepic)
-
1.2.310 Sep 2019 -
1.2.210 Sep 2019 -
1.2.107 Sep 2019 -
1.2.006 Sep 2019 -
1.1.006 Sep 2019 -
1.0.005 Sep 2019