Over the last several years, I’ve rewritten Rust’s
regexcrate to enable better internal composition, and to make it easier to add optimizations while maintaining correctness. In the course of this rewrite I created a new crate,
regex-automata, which exposes much of the regex crate internals as their own APIs for others to use. To my knowledge, this is the first regex library to expose its internals to the degree done in
regex-automataas a separately versioned library.
This blog post discusses the problems that led to the rewrite, how the rewrite solved them and a guided tour of
Source: Regex engine internals as a library, an article by Andrew Gallant.