blob: 22a69e904a869fc3859ae54cbc694e1d0bb0bf11 [file] [view] [edit]
# idna-data
The IDNA and UTS 46 functionality in this library relies upon
pre-calculated lookup tables for performance. These tables are derived
from computing against eligibility criteria in the respective standards
using the command-line script `idna-data` in this directory.
This tool will fetch relevant codepoint data from the Unicode repository
and perform the required calculations to identify eligibility. There are
three main modes:
* `idna-data make-libdata`. Generates `idnadata.py` and
`uts46data.py`, the pre-calculated lookup tables used for IDNA and
UTS 46 conversions. Implementers who wish to track this library against
a different Unicode version may use this tool to manually generate a
different version of the `idnadata.py` and `uts46data.py` files.
* `idna-data make-table`. Generate a table of the IDNA disposition
(e.g. PVALID, CONTEXTJ, CONTEXTO) in the format found in Appendix
B.1 of RFC 5892 and the pre-computed tables published by [IANA](https://www.iana.org/).
* `idna-data U+0061`. Prints debugging output on the various
properties associated with an individual Unicode codepoint (in this
case, U+0061), that are used to assess the IDNA and UTS 46 status of a
codepoint. This is helpful in debugging or analysis.
The tool accepts a number of arguments, described using `idna-data -h`.
Most notably, the `--version` argument allows the specification
of the version of Unicode to be used in computing the table data. For
example, `idna-data --version 9.0.0 make-libdata` will generate
library data against Unicode 9.0.0.