A pure Erlang IDNA implementation that folllow the RFC5891. * support IDNA 2008 and IDNA 2003. * label validation: - check NFC: Label must be in Normalization Form C - check hyphen: The Unicode string MUST NOT contain "--" (two consecutive hyphens) in the third and fourth character positions and MUST NOT start or end with a "-" (hyphen). - Leading Combining Marks: The Unicode string MUST NOT begin with a combining mark or combining character (see The Unicode Standard, Section 2.11 Unicode for an exact definition). - Contextual Rules: The Unicode string MUST NOT contain any characters whose validity is context-dependent, unless the validity is positively confirmed by a contextual rule. To check this, each code point identified as CONTEXTJ or CONTEXTO in the Tables document RFC5892 MUST have a non-null rule. If such a code point is missing a rule, the label is invalid. If the rule exists but the result of applying the rule is negative or inconclusive, the proposed label is invalid. - check BIDI: label contains any characters from scripts that are written from right to left, it MUST meet the Bidi criteria rfc5893