text-icu: Bindings to the ICU library

[ bsd3, data, library, text ] [ Propose Tags ]

Haskell bindings to the International Components for Unicode (ICU) libraries. These libraries provide robust and full-featured Unicode services on a wide variety of platforms.

Features include:

  • Both pure and impure bindings, to allow for fine control over efficiency and ease of use.

  • Breaking of strings on character, word, sentence, and line boundaries.

  • Access to the Unicode Character Database (UCD) of character metadata.

  • String collation functions, for locales where the conventions for lexicographic ordering differ from the simple numeric ordering of character codes.

  • Character set conversion functions, allowing conversion between Unicode and over 220 character encodings.

  • Unicode normalization. (When implementations keep strings in a normalized form, they can be assured that equivalent strings have a unique binary representation.)

  • Regular expression search and replace.

  • Security checks for visually confusable (spoofable) strings.

  • Bidirectional Unicode algorithm

  • Calendar objects holding dates and times.

  • Number and calendar formatting.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1, 0.2.0.0, 0.3.0.0, 0.4.0.0, 0.4.0.1, 0.5.0.0, 0.5.0.1, 0.6.0.0, 0.6.0.1, 0.6.2.1, 0.6.3.0, 0.6.3.1, 0.6.3.2, 0.6.3.3, 0.6.3.4, 0.6.3.5, 0.6.3.6, 0.6.3.7, 0.7.0.0, 0.7.0.1, 0.7.1.0, 0.8.0, 0.8.0.1, 0.8.0.2, 0.8.0.3, 0.8.0.4 (info)
Change log changelog.md
Dependencies base (>=4.8 && <5), bytestring (>=0.9 && <0.13), deepseq (>=1.4.2.0 && <1.6), text (>=0.9.1.0 && <1.3 || >=2.0 && <2.2), time (>=1.5 && <1.13) [details]
License BSD-3-Clause
Copyright 2009-2015 Bryan O'Sullivan
Author
Maintainer Vladimir Shabanov <dev@vshabanov.com>
Category Data, Text
Home page https://github.com/haskell/text-icu
Bug tracker https://github.com/haskell/text-icu/issues
Source repo head: git clone https://github.com/haskell/text-icu
Uploaded by VladimirShabanov at 2023-10-04T22:11:51Z
Distributions Arch:0.8.0.4, Debian:0.7.0.1, FreeBSD:0.7.0.1, LTSHaskell:0.8.0.4, NixOS:0.8.0.4, Stackage:0.8.0.4
Reverse Dependencies 41 direct, 2123 indirect [details]
Downloads 45021 total (193 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2023-10-04 [all 1 reports]

Readme for text-icu-0.8.0.4

[back to package description]

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 (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.

Authors

This library was written by Bryan O'Sullivan.