MyNixOS website logo
Description

Unicode characters names and aliases.

unicode-data-names provides Haskell APIs to access the Unicode character names and aliases from the Unicode character database (UCD).

The Haskell data structures are generated programmatically from the UCD files. The latest Unicode version supported by this library is 15.1.0.

README

unicode-data-names provides Haskell APIs to efficiently access the Unicode character names and aliases from the Unicode character database.

There are 3 APIs:

  • String API: enabled by default.
  • ByteString API: enabled via the package flag has-bytestring.
  • Text API: enabled via the package flag has-text.

The Haskell data structures are generated programmatically from the Unicode character database (UCD) files. The latest Unicode version supported by this library is 15.1.0.

Please see the Haddock documentation for reference documentation.

Comparing with ICU

We can compare the implementation against ICU. This requires working with the source repository, as we need the internal package icu.

Warning: An ICU version with the exact same Unicode version is required.

cabal run -O2 --flag dev-has-icu unicode-data-names:tests -- -m ICU

Comparing with Python

In order to check Unicode implementation in Haskell, we compare the results obtained with Python.

Warning: A Python version with the exact same Unicode version is required.

cabal run -O2 -f "export-all-chars" -v0 export-all-chars > ./test/all_chars.csv
python3 ./test/check.py -v ./test/all_chars.csv

Licensing

unicode-data-names is an open source project available under a liberal Apache-2.0 license.

Contributing

As an open project we welcome contributions.

Metadata

Version

0.4.0

License

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows