Introduction The String Algorithm Library provides a generic implementation of string-related algorithms which are missing in STL. It is an extension to the algorithms library of STL and it includes trimming, case conversion, predicates and find/replace functions. All of them come in different variants so it is easier to choose the best fit for a particular need. The implementation is not restricted to work with a particular container (like a std::basic_string), rather it is as generic as possible. This generalization is not compromising the performance since algorithms are using container specific features when it means a performance gain. The library has layered structure to simplify the usage without sacrificing the generalization. The easy-to-use interface, defined in the namespace boost, represents the first layer. Algorithms and classes defined here do not offer a lot of customization opportunities rather they are provided in more different variants, so a user can chose the one that suits her needs. The second layer, defined in the namespace boost::string_algo, on the other hand, is generic. Basically it contains the same set of algorithms as the first layer, but the interface is more flexible and allows more customization, but it is harder to use. The first layer is implemented as set of wrappers around the second layer. The documentation is divided into several sections. For a quick start read the Usage section. The Design Topics, Concepts and Rationale provide some explanation about the library design and structure an explain how it should be used. See the Reference for the complete list of provided utilities and algorithms. Functions and classes in the reference are organized by the headers in which they are defined. The reference contains links to the detailed description for every entity in the library.