Projects / GNU Libidn

GNU Libidn

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.

Operating Systems

Recent releases

  •  28 May 2012 16:32

    Release Notes: Build issues related to _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE for MSVC have been fixed. Compiler warnings about ignoring return values from fgets in examples have been fixed. Libidn now ships with a valgrind suppressions file for the strlen issue. Gnulib files and translations have been updated.

    •  17 Jan 2012 08:27

      Release Notes: Libraries were re-licensed from LGPLv2+ to dual GPLv2+ and LGPLv3+. Parallel Windows builds were fixed. A potential infinite loop in pr29 code was fixed. The 'stringprep_ucs4_nfkc_normalize' function now has a const keyword. Glib NFKC code was synced and the copyright/license statements improved. Gnulib files were updated.

      •  17 Jan 2012 08:24

        Release Notes: The stringprep.h header file now #include's sys/types.h instead of unistd.h for ssize_t because some systems (e.g., MingW with MSVC 9) does not have unistd.h. The idn-free.h prototypes are now protected with the 'extern "C"' marker. The links to experimental TLD tables were updated. Gnulib files and translations were updated. Cyclo output was improved. GTK-DOC files were updated and various bugs were fixed.

        •  04 May 2011 21:23

          Release Notes: This release adds -liconv as a static library requirement in libidn.pc for MinGW. It fixes a memory leak in idna_to_ascii_4z when idna_to_ascii_4i fails. clang-analyze has been run on the code, and some dead assignments/initializations fixed. win32/ is really distributed now.

          •  24 Apr 2011 15:49

            Release Notes: This release demands gettext >= 0.18.1 in order to get newer M4 files for Solaris. It has an improved MinGW cross-compile makefile. Visual Studio files have been fixed to define LIBIDN_BUILDING.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.