GNU Libidn is an implementation of the Stringprep, Punycode, and IDNA specifications defined by the IETF Internationalized Domain Names (IDN) working group. It is used to prepare internationalized strings (such as domain name labels, usernames, and passwords) in order to increase the likelihood that string input and string comparison work in ways that make sense for typical users throughout the world. The library contains a generic Stringprep implementation that does Unicode 3.2 NFKC normalization, mapping and prohibition of characters, and bidirectional character handling. Profiles for iSCSI, Kerberos 5, Nameprep, SASL, and XMPP are included. Punycode and ASCII Compatible Encoding (ACE) via IDNA are supported.
| Tags | Internet DNS Software Development Libraries Text Processing |
|---|---|
| Licenses | LGPL |
| Operating Systems | POSIX Windows Windows |
| Implementation | C Java Emacs Lisp Python |
Recent releases


Changes: The commandline tool "idn" now accepts -n as a short form of --nfkc. Compiler warnings have been fixed. Translations and gnulib files have been updated.


Changes: An error message in the "idn" tool when NFKC fails was fixed. Some other translation fixes were made. A bug that caused a failure during C# compilation was worked around. More non-free text was removed from doc/specifications/rfc3454.txt. The gnulib files were updated, and the gnulib self-tests were included. Translations were updated.


Changes: Translation files are no longer stored directly in git to avoid merge conflicts. The gnulib files were updated.


Changes: For the idn command line tool, a new parameter, --nfkc, was added to process a string with Unicode v3.2 NFKC. A minor build fix was made for native Win32 builds. The gnulib files were updated.


Changes: Native Windows Visual Studio project files were added. Non-free portions of RFC 3454 were removed. gnulib files were updated. Documentation for IDNA was fixed.