R build status CRAN status Lifecycle: stable

This package is a low level package that provides advanced text shaping capabilities to graphic devices. It is based on the FriBidi and HarfBuzz libraries and provides full support for correctly shaping left-to-right, right-to-left, and bidirectional text with full support for all OpenType features such as ligatures, stylistic glyph substitutions, etc.

For an example of a package that uses textshaping to support advanced text layout see ragg.

A big thanks to Behdad Esfahbod who is the main author of both FriBidi and HarfBuzz and has been very helpful answering questions during the cause of development.


You can install textshaping from CRAN with install.packages("textshaping"). For the development version you can install it from Github with devtools:


Note that you will need both the development versions of FriBidi and HarfBuzz to successfully compile it.

Code of Conduct

Please note that the textshaping project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.