Skip to content


Repository files navigation

Fast and Portable Character String Processing in R (with the Unicode ICU)

Build Status RStudio CRAN mirror downloads RStudio CRAN mirror downloads RStudio CRAN mirror downloads

A comprehensive tutorial and reference manual is available at

Check out stringx for a set of wrappers around stringi with a base R-compatible API.

To learn more about R, check out Marek's open-access (free!) textbook Deep R Programming.

stringi (pronounced “stringy”, IPA [strinɡi]) is THE R package for string/text/natural language processing. It is very fast, consistent, convenient, and — thanks to the ICU – International Components for Unicode library — portable across all locales and platforms.

Available features include:

  • string concatenation, padding, wrapping,
  • substring extraction,
  • pattern searching (e.g., with Java-like regular expressions),
  • collation and sorting,
  • random string generation,
  • case mapping and folding,
  • string transliteration,
  • Unicode normalisation,
  • date-time formatting and parsing,

and many more.

Package Maintainer: Marek Gagolewski

Authors and Contributors: Marek Gagolewski, with contributions from Bartłomiej Tartanus and many others.

The package's API was inspired by that of the early (pre-tidyverse; v0.6.2) version of Hadley Wickham's stringr package (and since the 2015 v1.0.0 stringr is powered by stringi).


Citation: Gagolewski M., stringi: Fast and portable character string processing in R, Journal of Statistical Software 103(2), 2022, 1–59,

CRAN Entry:

System Requirements: R >= 3.4, ICU4C >= 61 (refer to the INSTALL file for more details)

License: stringi's source code is distributed under the open source BSD-3-clause license. For more details, see LICENSE.

This git repository also contains a custom subset of ICU4C source code which is copyrighted by Unicode, Inc. and others. A binary version of the Unicode Character Database is included. For more details on copyright holders, see LICENSE. The ICU project is covered by the Unicode license — a simple, permissive non-copyleft free software license, compatible with the GNU GPL. The ICU license is intended to allow ICU to be included in free software projects as well as in proprietary or commercial products.

Changes: see the NEWS file.

How to access the stringi C++ API from within an Rcpp-based R package