macOS
brew install libidn2local Homebrew formula metadata
sudo port install libidn2MacPorts ports tree · mail/libidn2/Portfile · source: api.github.com
brew
International domain name library (IDNA2008, Punycode and TR46). Version 2.3.8 via Homebrew; verified 2026-06-22.
install
brew install libidn2local Homebrew formula metadata
sudo port install libidn2MacPorts ports tree · mail/libidn2/Portfile · source: api.github.com
sudo apk add idn2-utilsAlpine Linux edge package indexes · idn2-utils · source: dl-cdn.alpinelinux.org
sudo apt install idn2Debian stable package indexes · idn2 · source: deb.debian.org
sudo dnf install idn2Fedora Rawhide package metadata · idn2 · source: dl.fedoraproject.org
nix profile install nixpkgs#libidn2nixpkgs package indexes · libidn2 · source: raw.githubusercontent.com
sudo pacman -S libidn2Arch Linux sync databases · libidn2 · source: geo.mirror.pkgbuild.com
sudo zypper install libidn2-0openSUSE Tumbleweed package metadata · libidn2-0 · source: download.opensuse.org
overview
International domain name library (IDNA2008, Punycode and TR46)
history
GNU Libidn2 is the GNU successor to Libidn for IDNA2008 and Unicode TR46 internationalized-domain-name processing.
The IETF IDNA2008 RFC series replaced the earlier IDNA2003 model, describing a revised protocol and definitions for internationalized domain names. Libidn2 was created to implement that newer standards family while retaining package-level continuity for GNU users.
The Libidn2 NEWS file records an initial 0.0 alpha release on 2011-03-09 for public API review, with IDNA2008 lookup mostly implemented. Release 0.2 on 2011-03-30 added the idn2 command-line tool and made lookup/register functions operational.
Release 0.12 on 2016-12-26 added TR46/UTS #46 support to the API and idn2 utility. Release 2.0.0 on 2017-03-29 changed the version numbering scheme and added to-ASCII and to-Unicode conversion functions corresponding to Libidn functions. Release 2.0.5 on 2018-05-18 switched the default library behavior to IDNA2008 as amended by non-transitional TR46.
The GNU Libidn page explicitly calls Libidn2 the successor of GNU Libidn and notes that it provides IDNA2008, TR46, and a compatibility layer for GNU Libidn. That made it the practical migration path for distributions and network applications moving away from IDNA2003 behavior.
Libidn2 is package-visible because applications often need a shared, audited implementation of Unicode domain-name conversion rather than hand-rolling security-sensitive Punycode and normalization behavior.
Users call idn2 for command-line conversion and debugging, while applications link the library for IDNA lookup and registration conversions. The manual emphasizes correct locale and UTF-8 handling because feeding bytes in the wrong character set can produce errors or wrong output.
Libidn2 is where DNS, Unicode versioning, security-sensitive string handling, and compatibility policy meet. Packagers care about it because changing from libidn to libidn2 can alter IDNA behavior, but staying on IDNA2003 can be wrong for software that expects IDNA2008/TR46.
It is also a good example of a successor package that is not just a new ABI: it represents a standards transition and a different view of what domain names should accept.
security posture
library-like package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
idn2 | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://www.gnu.org/software/libidn/#libidn2
install metadata
| Package key | brew:libidn2 |
|---|---|
| Version | 2.3.8 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/libidn2 |
| Homepage | https://www.gnu.org/software/libidn/#libidn2 |
| Repository | https://git.savannah.gnu.org/git/libidn/libidn2.git |
| Upstream docs | https://www.gnu.org/software/libidn/libidn2/manual/libidn2.html |
| License | (GPL-2.0-or-later OR LGPL-3.0-or-later) AND (Unicode-TOU AND Unicode-DFS-2016) AND GPL-3.0-or-later AND LGPL-2.1-or-later AND FSFAP-no-warranty-disclaimer |
| Source archive | https://ftpmirror.gnu.org/gnu/libidn/libidn2-2.3.8.tar.gz |
| Last updated | 2026-06-22T14:05:18-07:00 |
| Pulse | updated |
| Dependencies | gettext, libunistring |
| Build dependencies | pkgconf |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, sonoma, ventura, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | libidn2 |
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
idn2 2.3.8-2
Internationalized domain names (IDNA2008/TR46) command line tool
https://www.gnu.org/software/libidn/#libidn2
sudo apt install idn2libidn2-0 2.3.8-2
Internationalized domain names (IDNA2008/TR46) library
https://www.gnu.org/software/libidn/#libidn2
sudo apt install libidn2-0libidn2-dev 2.3.8-2
Internationalized domain names (IDNA2008/TR46) development files
https://www.gnu.org/software/libidn/#libidn2
sudo apt install libidn2-devlibidn2-doc 2.3.8-2
Internationalized domain names (IDNA2008/TR46) documentation
https://www.gnu.org/software/libidn/#libidn2
sudo apt install libidn2-doclibidn2
nix profile install nixpkgs#libidn2idn2 2.3.7-2build1
Internationalized domain names (IDNA2008/TR46) command line tool
https://www.gnu.org/software/libidn/#libidn2
sudo apt install idn2libidn2-0 2.3.7-2build1
Internationalized domain names (IDNA2008/TR46) library
https://www.gnu.org/software/libidn/#libidn2
sudo apt install libidn2-0libidn2-dev 2.3.7-2build1
Internationalized domain names (IDNA2008/TR46) development files
https://www.gnu.org/software/libidn/#libidn2
sudo apt install libidn2-devlibidn2-doc 2.3.7-2build1
Internationalized domain names (IDNA2008/TR46) documentation
https://www.gnu.org/software/libidn/#libidn2
sudo apt install libidn2-docidn2-utils 2.3.8-r0
Encode/Decode library for internationalized domain names (CLI utilities)
https://www.gnu.org/software/libidn#libidn2
sudo apk add idn2-utilslibidn2 2.3.8-r0
Encode/Decode library for internationalized domain names
https://www.gnu.org/software/libidn#libidn2
sudo apk add libidn2libidn2-dev 2.3.8-r0
Encode/Decode library for internationalized domain names (development files)
https://www.gnu.org/software/libidn#libidn2
sudo apk add libidn2-devlibidn2-doc 2.3.8-r0
Encode/Decode library for internationalized domain names (documentation)
https://www.gnu.org/software/libidn#libidn2
sudo apk add libidn2-doclibidn2-static 2.3.8-r0
Encode/Decode library for internationalized domain names (static library)
https://www.gnu.org/software/libidn#libidn2
sudo apk add libidn2-staticidn2 2.3.8-3.fc44
IDNA2008 internationalized domain names conversion tool
https://www.gnu.org/software/libidn/#libidn2
sudo dnf install idn2libidn2 2.3.8-3.fc44
Library to support IDNA2008 internationalized domain names
https://www.gnu.org/software/libidn/#libidn2
sudo dnf install libidn2source trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.