A pure Erlang IDNA implementation.
$ make
...
$ erl -pa ebin
...
1> inets:start(), idna:start(). % downloads UnicodeData.txt from unicode.org
...
2> Domain = xmerl_ucs:from_utf8("www.詹姆斯.com").
...
3> idna:to_ascii(Domain).
...
RFC3490 (IDNA)
RFC3492 (Punycode)
addressable (Ruby URI implementation)
punycode4r (Ruby punycode implementation)
UAX #15 (Unicode Normalization Forms)