6 releases (breaking)

Uses old Rust 2015

0.5.0 Aug 8, 2016
0.4.0 Jan 11, 2016
0.3.0 Oct 3, 2015
0.2.0 Sep 26, 2015
0.0.1 Aug 16, 2015

#3 in #turning

35 downloads per month

MIT/Apache

170KB
3K SLoC

regex_dfa

A crate for compiling regular expressions down to deterministic finite automata.

Build status Coverage Status

Documentation

Why?

Some regular expression implementations (e.g. rust's regex library) are based on simulating non-deterministic finite automata (NFAs). By turning NFAs into DFAs, we can get a speed boost, at the cost of some compilation time and memory usage. Preliminary benchmarks show a substantial speed improvement over rust's default regex crate.

Limitations

  • Turning an NFA into a DFA can take a lot of memory, especially when unicode character classes are involved.
  • Subgroup captures are a bit tricky, and this crate does not handle them.
  • regex_dfa currently only works on nightly rust.

License

regex_dfa is distributed under the MIT license and the Apache license (version 2.0). See LICENSE-APACHE and LICENSE-MIT for details.

Dependencies

~7–15MB
~178K SLoC