Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/haskell/text-icu

This package provides the Haskell Data.Text.ICU library, for performing complex manipulation of Unicode text.
https://github.com/haskell/text-icu

Last synced: about 1 month ago
JSON representation

This package provides the Haskell Data.Text.ICU library, for performing complex manipulation of Unicode text.

Awesome Lists containing this project

README

        

# Text-ICU: Comprehensive support for string manipulation

This package provides the Data.Text.ICU library, for performing
complex manipulation of Unicode text. It provides features such as
the following:

* Unicode normalization

* Conversion to and from many common and obscure encodings

* Date and number formatting

* Comparison and collation

## Prerequisites

This library is implemented as bindings to the well-respected [ICU
library](https://icu.unicode.org/) (which is not bundled, and must
be installed separately).

### macOS

brew install icu4c
brew link icu4c --force

You might need:

export PKG_CONFIG_PATH="$(brew --prefix)/opt/icu4c/lib/pkgconfig"

### Debian/Ubuntu

sudo apt-get update
sudo apt-get install libicu-dev

### Fedora/CentOS

sudo dnf install unzip libicu-devel

### Nix/NixOS

nix-shell --packages icu

### Windows/MSYS2

Under MSYS2, `ICU` can be installed via `pacman`.

pacman --noconfirm -S mingw-w64-x86_64-icu

Depending on the age of the MSYS2 installation, the keyring might need
to be updated to avoid certification issues, and `pkg-config` might
need to be added. In this case, do this first:

pacman --noconfirm -Sy msys2-keyring
pacman --noconfirm -S mingw-w64-x86_64-pkgconf

### Windows/stack

With `stack` on Windows, which comes with its _own_ bundled MSYS2, the
following commands give up-to-date system dependencies for
`text-icu-0.8.0` (tested 2023-09-30):

stack exec -- pacman --noconfirm -Sy msys2-keyring
stack exec -- pacman --noconfirm -S mingw-w64-x86_64-pkgconf
stack exec -- pacman --noconfirm -S mingw-w64-x86_64-icu

## Compatibility

Upstream ICU occasionally introduces backwards-incompatible API
breaks. This package tries to stay up to date with upstream, and is
currently more or less in sync with ICU 72.

Minimum required version is ICU 62.

## Get involved!

Please report bugs via the
[github issue tracker](https://github.com/haskell/text-icu/issues).

## Authors

This library was written by Bryan O'Sullivan.