# Unicode String v2.4.0 - Table of Contents

> Unicode locale-aware case folding, case mapping (upcase, downcase and titlecase)
case-insensitive equality as well as word, line, grapheme and sentence
breaking and streaming.

## Pages

- [Unicode String](readme.md)
- [UAX #29 Conformance and ICU Comparison](conformance.md)
- [License](license.md)
- [Changelog](changelog.md)

- Guides
  - [Introduction](introduction.md)
  - [Grapheme Cluster Break](grapheme_break.md)
  - [Word Break](word_break.md)
  - [Sentence Break](sentence_break.md)
  - [Line Break](line_break.md)
  - [Casing](casing.md)

## Modules

- [Unicode.String](Unicode.String.md): This module provides functions that implement some
of the [Unicode](https://unicode.org) standards

- Segmentation
  - [Unicode.String.Break](Unicode.String.Break.md): Implements the Unicode break algorithms for graphemes, words,
sentences and line-breaks.
  - [Unicode.String.Break.Tailoring](Unicode.String.Break.Tailoring.md): CLDR's locale tailoring of the segmentation rules.
  - [Unicode.String.Segment](Unicode.String.Segment.md): Implements the compilation of the Unicode
segment rules.

- Dictionary Segmentation
  - [Unicode.String.Dictionary](Unicode.String.Dictionary.md): Implements basic dictionary functions for dictionary-based
work break.
  - [Unicode.String.DictionaryBreak](Unicode.String.DictionaryBreak.md): Implements ICU's lookahead-based dictionary word break algorithm
for scripts that don't use spaces between words.

- Case Mapping
  - [Unicode.String.Case.Folding](Unicode.String.Case.Folding.md): Implements the Unicode Case Folding algorithm.
  - [Unicode.String.Case.Mapping](Unicode.String.Case.Mapping.md): The [Unicode Case Mapping](https://www.unicode.org/versions/Unicode15.0.0/ch03.pdf) algorithm
defines the process and data to transform text into upper case, lower case or title case.
  - [Unicode.String.Case.Mapping.Greek](Unicode.String.Case.Mapping.Greek.md): Implements the special upper casing rules for
for the Greek language.

- ICU Backend
  - [Unicode.String.Nif](Unicode.String.Nif.md): Optional ICU4C backend for segmentation.

- Break Engines
  - [Unicode.String.Dfa](Unicode.String.Dfa.md): The break-iteration algorithm described in PRI #555 (L2/26-135), section 9.3.2.
  - [Unicode.String.Dfa.Builder](Unicode.String.Dfa.Builder.md): Compile-time reader for the break-iterator state machine data proposed in
PRI #555 (L2/26-135).
  - [Unicode.String.Dfa.Grapheme](Unicode.String.Dfa.Grapheme.md): Table-driven engine implementing UAX #29 grapheme cluster segmentation.
  - [Unicode.String.Dfa.Line](Unicode.String.Dfa.Line.md): Table-driven engine implementing UAX #14 line breaking, with CLDR's CJK
locale tailoring.
  - [Unicode.String.Dfa.Sentence](Unicode.String.Dfa.Sentence.md): Table-driven engine implementing UAX #29 sentence breaking, with CLDR's
locale tailoring and abbreviation suppressions.
  - [Unicode.String.Dfa.Word](Unicode.String.Dfa.Word.md): Table-driven engine implementing UAX #29 word break.

- Deprecated
  - [Unicode.String.Break.Grapheme](Unicode.String.Break.Grapheme.md): Deprecated. Use `Unicode.String.Dfa.Grapheme` instead.
  - [Unicode.String.Break.Line](Unicode.String.Break.Line.md): Deprecated. Use `Unicode.String.Dfa.Line` instead.
  - [Unicode.String.Break.Sentence](Unicode.String.Break.Sentence.md): Deprecated. Use `Unicode.String.Dfa.Sentence` instead.
  - [Unicode.String.Break.Word](Unicode.String.Break.Word.md): Deprecated. Use `Unicode.String.Dfa.Word` instead.

- Internals
  - [Unicode.String.ExtendedPictographic](Unicode.String.ExtendedPictographic.md): A guard-safe test for the `Extended_Pictographic` property.

## Mix Tasks

- [mix unicode.string.download.dictionaries](Mix.Tasks.Unicode.String.Download.Dictionaries.md): Downloads the ICU (Unicode) dictionaries supporting word breaks
for Chinese, Japanese, Thai, Burmese and Laotion languages.

