Vcsn — Be Rational


Try it Download Python doc C++ doc

Vcsn is a platform dedicated to the computation of, and with, finite state machines. It provides an efficient C++ library, a Python interface, and a graphical user interface on top of IPython.

Here finite state machines is to be understood in the broadest possible sense: finite automata with multiple tapes — often called transducers then — or even more generally finite automata with multiplicity, that is, automata that not only accept sequences of symbols but compute for such sequence a "value" that is associated with it and which can be taken in any semiring.

Indeed, our framework is the set of automata with multiplicity over any semiring: a general algorithm is written just once and can be instantiated to any particular kind of automaton. As a result, we obtain efficient code from algorithms written in an abstract way.

Vcsn benefits from the expertise the LRDE gained from our intensive work on high performance generic programming for Olena. On the other hand, its theoretical well-foundedness was ensured by Jacques Sakarovitch, at Télécom ParisTech, and with Sylvain Lombardy at the Laboratoire Bordelais de Recherche en Informatique.

Latest News (more...)

  • May 8th, 2018: Vcsn 2.8 is released!
  • March 15th, 2018: Vcsn 2.7 is released!
  • November 13th, 2017: Vcsn 2.6 is released!
  • January 28th, 2017: Vcsn 2.5 is released!
  • November 16th, 2016: Vcsn 2.4 is released!
  • July 8th, 2016: Vcsn 2.3 is released!
  • February 19th, 2016: Vcsn 2.2 is released!
  • October 11th, 2015: Vcsn 2.1 is released!
  • October 1st, 2015: Vcsn's git repository moved.
Run git remote set-url origin in your old repository to retarget it.

Information, Documentation



  • Vaucanson Repository: Browsable git repository of Vaucanson 1
  • FSMXML: Our proposal of an XML representation for (weighted) automata and rational expressions.
  • Vaucanson: Releases of Vaucanson 1


The following resources are the group's main means of discussion:

  • Issue Tracker: The place to create bug reports (and look existing tasks)
  • Vcsn: General questions, bug reports; discussions and announcements
  • vcsn patches: Patches and related discussions


Send any question or comments to
File bug reports on Git Lab, or send bug reports to