~alcinnz/harfbuzz-pure

e2f1019190c62696d14001c788e90cd4be145b56 — Adrian Cochrane 1 year, 2 months ago 2546e12
Add initial README.
1 files changed, 23 insertions(+), 0 deletions(-)

A README.md
A README.md => README.md +23 -0
@@ 0,0 1,23 @@
# Pure-functional Harfbuzz language bindings.
[Git repo](https://git.argonaut-constellation.org/~alcinnz/harfbuzz-pure) [Issue Tracker](https://todo.argonaut-constellation.org/~alcinnz/harfbuzz-pure) [Hackage](https://hackage.haskell.org/package/harfbuzz-pure)

HarfBuzz is a text shaping library. Using the HarfBuzz library allows programs to convert a sequence of Unicode input into properly formatted and positioned glyph output for practically any writing system and written language.

NOTE: You may need to install Harfbuzz 3.3.0 (Jan 2022) or newer from source, it hasn't been widely packaged yet.

These APIs map closely to those Harfbuzz 3.3.0 exposed, but tweaked to be pure-functional & reuse common Haskell datatypes. They throw HarfbuzzError should they run out of memory, though that should be extremely rare & otherwise contain no side-effects.

## Requirements

* Harfbuzz 3.3.0 or greater
* LibStdC++ (for Text dependency)
* Cabal

Cabal is capable of installing the few other dependencies.

For normal use please install via Hackage.

## Use
Please see the Haddock documentation for API usage.

Contains a demo program in `Main.hs`, which can be run via `cabal run`, that textually outputs the shaping data for given text under the [Lora](https://fonts.adobe.com/fonts/lora) font. Commandline arguments, if any, are the text to be rendered. Otherwise uses "Testing, testing".