Unicode Database and Normalization
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
cmake Add missing cmake script for finding Check May 26, 2017
.gitignore Add .gitignore file Apr 22, 2016
README Rename database header to ucdn_db.h Apr 1, 2017
makeunicodedata.py Update to Unicode 11 Jun 6, 2018
ucdn-test.c Add support for Bidi_Paired_Bracket and Bidi_Paired_Bracket_Type. Apr 22, 2016
ucdn-unit-test.c Add test for single-character decompositions Oct 2, 2017
ucdn.c Revert "Simplify ucdn_decompose" Oct 2, 2017
ucdn.h Update to Unicode 10.0 Jun 26, 2017
ucdn_db.h Update to Unicode 11 Jun 6, 2018


UCDN - Unicode Database and Normalization

UCDN is a Unicode support library. Currently, it provides access
to basic character properties contained in the Unicode Character
Database and low-level normalization functions (pairwise canonical
composition/decomposition and compatibility decomposition). More
functionality might be provided in the future, such as additional
properties, string normalization and encoding conversion.

UCDN uses standard C89 with no particular dependencies or requirements
except for stdint.h, and can be easily integrated into existing
projects. However, it can also be used as a standalone library,
and a CMake build script is provided for this. The first motivation
behind UCDN development was to provide a standalone set of Unicode
functions for the HarfBuzz OpenType shaping library. For this purpose,
a HarfBuzz-specific wrapper is shipped along with it (hb-ucdn.h).

UCDN is published under the ISC license, please see the license header
in the C source code for more information. The makeunicodata.py script
required for parsing Unicode database files is licensed under the
PSF license, please see PYTHON-LICENSE for more information.

UCDN was written by Grigori Goronzy <greg@kinoho.net>.

How to Use

Include ucdn.c, ucdn.h and ucdn_db.h in your project. Now, just use the
functions as documented in ucdn.h.

In some cases, it might be necessary to regenerate the Unicode
database file. The script makeunicodedata.py (Python 3.x required)
fetches the appropriate files and dumps the compressed database into