Punycode.js is a JavaScript library that converts between Punycode (ASCII) and Unicode strings, fully complying with RFC 3492 and RFC 5891. It is useful for encoding and decoding internationalized domain names or email address domains (e.g., using functions like decode, encode, toUnicode, and toASCII).
Project status
- The repository appears quiet in the present day: the last upstream push was 2024-04-18, and the most recent published updates listed are from 2023-12-19 (so there have been no new updates for well over a year relative to 2026-06-11).
- Update cadence looks bursty rather than continuous, with several updates clustered on 2023-12-19 (v2.2.1 to v2.3.0) after earlier work (for example, v2.3.1 on 2023-10-30), followed by a long gap with no clearly recorded updates.
AI summary generated 2026-06-11
Recent updates
v2.2.0
2023-12-19v2.2.0 updates the punycode package metadata and test/CI setup, and makes a small user-facing documentation change about how to require the module. The code diff also includes minor internal refactors in punycode.js (callback naming and stricter equality operators) that could subtly affect behavior under unusual inputs.
v2.3.0
2023-12-19Release v2.3.0 makes a minimal change set. It bumps the package.json version to 2.3.0 and modifies the GitHub Actions publish workflow to rewrite the package.json name before running npm publish.
Breakingv2.2.3
2023-12-19Release v2.2.3 contains minimal tracked changes: a package.json version bump and a modification to the GitHub Actions publish workflow. The workflow now edits package.json at publish time, indicating the npm package name used for publishing may differ from the repository’s committed package.json.
v2.2.2
2023-12-19Release v2.2.2 has no published release notes. The code diff shows changes mainly around build/CI automation and a small but user-visible behavior change in the punycode encoding rules for the DEL character (U+007F).
v2.2.1
2023-12-19Release v2.2.1 contains no provided release notes. The code diff shows a small update to digit validation in `punycode.decode`, plus a new test that asserts a specific error for invalid input.
v2.1.1
2023-12-19Release v2.1.1 contains no publisher-provided release notes. The code diff shows changes limited to packaging and the generated ES module build output, without any changes to the underlying punycode conversion logic.
Featuresv2.1.0
2023-12-19Release v2.1.0 has no provided release notes. The code diff shows a small behavioral change in how the library classifies “non-ASCII” characters, plus a corresponding version bump and an added test case.
v2.0.1
2023-12-19v2.0.1 makes small metadata and packaging changes compared to v2.0.0, including version bumping and adding an ES module build output. There were no release notes provided, so the behavioral impact must be inferred from the code diff.
Featuresv2.3.1
2023-10-30Release v2.3.1 contains no publisher-provided release notes. The code diff shows mostly maintenance updates: CI workflow action upgrades, a Node.js version bump for development, devDependency updates for coverage tooling, README documentation tweaks, and updating the embedded punycode version string.
Breakingv2.0.0
2016-06-29v2.0.0 drops support for older JavaScript environments and targets Node.js 6 and newer only. If you need the same functionality in Rhino, Ringo, Narwhal, or web browsers, you must stay on v1.4.1.
Breaking