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

Homepage:
https://github.com/benoitc/erlang-idna/
