Tags: kjd/idna
Tags
v3.17 - Substantial 75% reduction in memory usage through new data structures and some optimization in processing speed. - Added a general 1024-character input length cap to the public validation, conversion, and codec entry points. This is well above any legitimate domain or label and guards against pathological inputs.
v3.16 - Add a command-line interface (`python -m idna`, also available as the `idna` script). Encodes or decodes one or more domains supplied as arguments or on standard input, with options to select A-label or U-label output and control error handling. - Raise the minimum supported Python version to 3.9 - Various code quality improvements
v3.15 - Enforce DNS-length cap on individual labels early in `check_label`, short-circuiting contextual-rule processing for oversized input while staying compatible with UTS 46 usage. - Tidy core helpers: hoist bidi category sets to module-level frozensets (avoiding per-codepoint list construction), simplify length checks, and reuse the shared `_unicode_dots_re` from `idna.core` in the codec module. - Use `raise ... from err` for proper exception chaining and switch internal string formatting to f-strings. - Allow `flit_core` 4.x in the build backend. - Expand the ruff lint set (flake8-bugbear, flake8-simplify, pyupgrade, perflint) and apply the surfaced fixes; pin lint CI to Python 3.14. - Add Dependabot configuration for GitHub Actions. - Convert README and HISTORY from reStructuredText to Markdown. - Reference CVE-2026-45409 for the 3.14 advisory in place of the initial GHSA identifier.
v3.14 - Removed opportunity to process long inputs into quadratic time by rejecting oversize inputs up-front. Closes a bypass of the CVE-2024-3651 mitigation. [GHSA-65pc-fj4g-8rjx]
v3.12 - Update to Unicode 17.0.0. - Issue a deprecation warning for the transitional argument. - Added lazy-loading to provide some performance improvements. - Removed vestiges of code related to Python 2 support, including segmentation of data structures specific to Jython.
v3.11 - Update to Unicode 16.0.0, including significant changes to UTS46 processing. As a result of Unicode ending support for it, transitional processing no longer has an effect and returns the same result. - Add support for Python 3.14, lowest supported version is Python 3.8. - Various updates to packaging, including PEP 740 support.
PreviousNext