Libidn Information

From IDNwiki

Jump to: navigation, search

Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications defined by the IETF Internationalized Domain Names (IDN) working group, used for internationalized domain names. The native C, C# and Java libraries are available under the GNU Lesser General Public License version 2.1.

The library contains a generic Stringprep implementation that does Unicode 3.2 NFKC normalization, mapping and prohibitation of characters, and bidirectional character handling. Profiles for Nameprep, iSCSI, SASL and XMPP are included. Punycode and ASCII Compatible Encoding (ACE) via IDNA are supported. A mechanism to define Top-Level Domain (TLD) specific validation tables, and to compare strings against those tables, is included. Default tables for some TLDs are also included.

Libidn is developed for the GNU/Linux system, but runs on over 20 Unix platforms (including Solaris, IRIX, AIX, and Tru64) and Windows. Libidn is written in C and (parts of) the API is accessible from C, C#, C++, Emacs Lisp, Python and Java.

The project page of the library is available at:


The main manual:


API Reference manual:


Doxygen documentation:


JavaDoc output for the Java API:

Personal tools