Skip to content

Releases: kjd/idna

v3.18

Choose a tag to compare

@github-actions github-actions released this 02 Jun 14:34
- When decoding a domain, add a `display` argument that will pass
  through invalid labels rather than raising an exception.

v3.17

Choose a tag to compare

@github-actions github-actions released this 28 May 14:33
- 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

Choose a tag to compare

@github-actions github-actions released this 22 May 00: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

Choose a tag to compare

@github-actions github-actions released this 12 May 22:46
- 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

Choose a tag to compare

@github-actions github-actions released this 10 May 20:32
- 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.13

Choose a tag to compare

@github-actions github-actions released this 22 Apr 16:43
- Correct classification error for codepoint U+A7F1

v3.12

Choose a tag to compare

@github-actions github-actions released this 21 Apr 13:33
- 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

Choose a tag to compare

@github-actions github-actions released this 12 Oct 14:55
- 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.

v3.10

Choose a tag to compare

@github-actions github-actions released this 15 Sep 18:08
- Reverted to Unicode 15.1.0 data. Unicode 16 has some significant changes
  to UTS46 processing that will require more work to properly implement.

v3.9

Choose a tag to compare

@github-actions github-actions released this 14 Sep 02:58
- Update to Unicode 16.0.0
- Deprecate setup.cfg in favour of pyproject.toml
- Use ruff for code formatting