#automata #nfa #dfa #regex

rustomaton

A small Rust library for automaton (DFA, NFA, Regex) manipulation

3 unstable releases

0.2.1 Jul 22, 2020
0.2.0 Jul 21, 2020
0.1.0 Jul 19, 2020

#17 in #nfa

MIT license

69KB
2K SLoC

A Rust automaton manipulation library project.

Functionalities

The library allows to build automatons (DFA and NFA) and regexes.

It also provides lots of classic algorithms over theses structures and allows to convert from one to another.

Algorithms implemented

  • union of two automatons
  • intersection of two automatons
  • equality of two automatons
  • concatenation of two automatons
  • complementary of an automaton
  • minimisation of an automaton
  • Kleene closure of an automaton
  • determinization of an automaton
  • completed automaton
  • accessible automaton
  • co-accessible automaton
  • trimmed automaton
  • reversed automaton

Displayal

Regexes can be displayed as Strings but the "simplify" function is not incredible so it generates stupidly long regexes.

Automatons can be exported to .dot files.

Bugs

This library hasn't been tested intensively so I wouldn't recommend using it for something too serious.

If you notice a bug or anything weird don't hesitate to open an issue or a pull request on the Github page.

Dependencies

~1.5MB