#text #unicode #idna #internationalized #domain-names

unic-idna

UNIC — Unicode IDNA Compatibility Processing

8 releases (breaking)

✓ Uses Rust 2018 edition

0.9.0 Mar 3, 2019
0.8.0 Jan 2, 2019
0.7.0 Feb 7, 2018
0.6.0 Sep 22, 2017
0.1.1 Jun 20, 2017

#40 in Internationalization (i18n)

Download history 109/week @ 2018-12-19 26/week @ 2019-01-02 12/week @ 2019-01-09 5/week @ 2019-01-16 5/week @ 2019-01-23 7/week @ 2019-01-30 1/week @ 2019-02-06 2/week @ 2019-02-13 1/week @ 2019-02-20 32/week @ 2019-02-27 11/week @ 2019-03-06 6/week @ 2019-03-13 106/week @ 2019-03-20 24/week @ 2019-03-27

75 downloads per month
Used in 3 crates (1 directly)

MIT/Apache

367KB
2K SLoC

UNIC — Unicode IDNA Compatibility Processing

Crates.io Documentation

This UNIC component implements algorithms from [Unicode® Technical Standard #46

Notes

Initial code for this component is based on idna crate from rust-url.


lib.rs:

UNIC — Unicode IDNA Compatibility Processing

A component of unic: Unicode and Internationalization Crates for Rust.

This UNIC component implements algorithms from Unicode Technical Standard #46 - Unicode IDNA Compatibility Processing.

Quoting from UTS #46’s introduction:

Initially, domain names were restricted to ASCII characters. A system was introduced in 2003 for internationalized domain names (IDN). This system is called Internationalizing Domain Names for Applications, or IDNA2003 for short. This mechanism supports IDNs by means of a client software transformation into a format known as Punycode.

A revision of IDNA was approved in 2010 (IDNA2008). This revision has a number of incompatibilities with IDNA2003.

The incompatibilities force implementers of client software, such as browsers and emailers, to face difficult choices during the transition period as registries shift from IDNA2003 to IDNA2008. This document specifies a mechanism that minimizes the impact of this transition for client software, allowing client software to access domains that are valid under either system.

Dependencies