Dist FAQ and contrib/web/idn.php.
[libidn.git] / reference / libidn-docs.tmpl
blob229e66e05eedd16a748d227e84041b70eb3e7ac4
1 <!doctype book PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
2 <!ENTITY libidn-stringprep SYSTEM "stringprep.sgml">
3 <!ENTITY libidn-punycode SYSTEM "punycode.sgml">
4 <!ENTITY libidn-idna SYSTEM "idna.sgml">
5 ]>
6 <book id="index">
7   <bookinfo>
8     <title>GNU Libidn API Reference Manual</title>
9   </bookinfo>
11   <chapter>
12     <title>GNU Libidn API Reference Manual</title>
14     <para>
15 GNU Libidn is an implementation of the Stringprep, Punycode and IDNA
16 specifications defined by the IETF Internationalized Domain Names
17 (IDN) working group, used for internationalized domain names.  It is
18 available under the GNU Lesser General Public License.  Currently the
19 iSCSI, Kerberos 5, Nameprep, SASL and XMPP Stringprep profiles are
20 supported.
21     </para>
22     <para>
23 The library contains a generic Stringprep implementation (including
24 Unicode 3.2 NFKC normalization, table mapping of characters, and
25 Bidirectional Character handling), a few Stringprep profiles, and an
26 implementation of the functionality defined by Punycode and IDNA.
27     </para>
28     <para>
29 The Stringprep API consists of two main functions, one for converting
30 data from the system's native representation into UTF-8, and one
31 function to perform the Stringprep processing.  Each stringprep
32 profile has a corresponding CPP macro.  Adding a new Stringprep
33 profile for your application within the API is straightforward.  The
34 Punycode API consists of one encoding function and one decoding
35 function.  The IDNA API consists of the ToASCII and ToUnicode
36 functions, as well as an high-level interface for converting entire
37 domain names to and from the ACE encoded form.
38     </para>
39     <para>
40 The library is used by forthcoming network applications to process
41 user names and passwords before they are input to cryptographic
42 operations.  Libidn can be built into GNU Libc to enable a new
43 getaddrinfo() flag for system-wide IDN processing.
44     </para>
45     <para>
46 GNU Libidn is developed for the GNU/Linux system, but runs on over 20
47 Unix platforms (including Solaris, IRIX, AIX, and Tru64) and Windows.
48     </para>
50     &libidn-stringprep;
51     &libidn-punycode;
52     &libidn-idna;
53   </chapter>
54 </book>