5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews idnkit
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews -- internationalized domain name toolkit --
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews version 1.0
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews Japan Network Information Center (JPNIC)
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark AndrewsTable of contents of this file:
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews 1. Overview
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews 2. Directory structure of this distribution
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews 3. Supported systems
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews 4. Contact information
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark AndrewsSee the file INSTALL for compilation and installation instructions.
5c526acb82c882e41b655c31f5fa4425c87b671cMark AndrewsSee the file NEWS for a list of major changes in the current release.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews1. Overview
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsidnkit, which was originally known as mDNkit, is a toolkit for handling
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsinternationalized domain names. To handle such names, the following
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsfeatures are required:
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews + Encoding conversion
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews Multilingualized domain names have to be converted from
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews the encoding application uses (local encoding) to
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews the encoding used for name resolution (IDN encoding), and
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews vice versa. Since domain names in IDN encoding just look
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews like good old ASCII domain names, the encoding is also known
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews as ASCII-compatible encoding (ACE).
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews + NAMEPREP
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews Name preparation of domain names before converting to
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews IDN encoding. Basically this is a normalization process
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews of the domain names.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark AndrewsThese conversion/nameprep processes to domain names have to be
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsperformed before they are sent to DNS servers. And since the
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsprocessed domain names (in IDN encoding) consist of only legal ASCII
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewscharacters, no changes are required to DNS servers.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsidnkit provides several ways for adding these features.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark AndrewsThis kit consists of following components.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews + library for handling internationalized domain names
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews (libidnkit, libidnkitlite)
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews Those libraries implement encoding conversion and nameprep.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews They provide easy-to-use APIs for handling internationalized
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews domain name in your applications.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews Both libraries provide almost the same API. The difference
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews between them is that libidnkit internally uses iconv() function
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews to provide encoding conversion from UTF-8 to the local encoding
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews (such as iso-8859-1, usually determined by the current locale),
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews and vise versa. The idnconv and runidn commands in this toolkit
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews use libidnkit.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews libidnkitlite is lightweight version of libidnkit. It assumes
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews local encoding is UTF-8 so that it never uses iconv().
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews + codeset conversion utility (idnconv)
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews This command can convert internationalized domain name written
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews in local encoding (e.g. EUC-JP) to ACE or the opposite direction.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews It can also convert named.conf and zone master files for BIND.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews + command which adds IDN feature dynamically to unix applications
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews (runidn)
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews This command enables normal applications to handle
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews internationalized domain names by dynamically attaching special
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews library to them. See ``2. using runidn'' below.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews Note that this command is not installed unless you specify the
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews `--enable-runidn' option to `configure'. See the file `INSTALL'
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews for more information about installation.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews + patch for BIND9 that adds IDN capability
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews This patch adds IDN capability to BIND9. It adds encoding
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews conversion and nameprep features to `dig', `host' and
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews `nslookup'. With the patch, those commands become capable of
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews internationalized domain names.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews + IDN wrapper for Windows applications
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews On windows, name resolving request is passed to WINSOCK DLL. So,
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews replacing WINSOCK DLL with multi-lingual domain name version
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews makes legacy windows applications compatible with IDN. This is
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews wrapper DLL for WINSOCK's name resolving functions. See
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews ``3. using IDN wrapper'' below.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews2. Directory structure of this distribution
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark AndrewsBelow is a directory structure of this distribution with some
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsimportant files and their brief description.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews +README this file
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews +README.ja .. in Japanese
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews +INSTALL compilation and installation instructions.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews +INSTALL.ja .. in Japanese
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews +DISTFILES list of files in this distribution
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews +NEWS what's new in this version
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews +ChangeLog list of changes
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews +Makefile.in toplevel makefile template
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews +configure a `configure' script
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews +include/
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews | +config.h.in template header file for configuration
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews | +idn/ header files for libidnkit and libindkitlite
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews | +mdn/ header files for backward compatibility
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews +lib/ source for libidnkit and libidnkitlite
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews +patch/
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews | +bind9/ BIND9 patch
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews +tools/
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews | +idnconv/ source for idnconv command
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews | +runidn/ source for runidn command
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews +util/ utilities
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews +wsock/ source for IDN wrapper
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews3. Supported systems
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark AndrewsWe've had successful builds on the following systems:
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews -------------------------------------------------------------------
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews OS iconv library configure options
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews ===================================================================
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews FreeBSD 4.7-RELEASE GNU libiconv --with-libiconv
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews for Intel 1.8
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews -------------------------------------------------------------------
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews Red Hat Linux 7.3 standard library none
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews for Intel (glibc)
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews -------------------------------------------------------------------
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews Solaris 9 standard library none
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews for Sparc (libc)
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews -------------------------------------------------------------------
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark AndrewsThe latest information about supported/unsupported systems will be
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsfound at the mdnkit FAQ page linked from:
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews http://www.nic.ad.jp/en/idn/
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews4. Contact information
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark AndrewsPlease see
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews http://www.nic.ad.jp/en/idn/
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsfor the latest news about this kit.
5c526acb82c882e41b655c31f5fa4425c87b671cMark AndrewsBug reports and comments on this kit should be sent to
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews mdnkit-bugs@nic.ad.jp
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsand
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews idn-cmt@nic.ad.jp
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsrespectively.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews; $Id: README,v 1.1 2003/06/04 00:24:58 marka Exp $