SNAKES is a Python library that provides all the necessary to define and execute many sorts of Petri nets, in particular algebras of Petri nets. SNAKES' main aim is to be a general Petri net library, being able to cope with most Petri nets models, and providing the researcher with a tool to quickly prototype new ideas.
A key feature of SNAKES is the ability to use arbitrary Python objects as tokens and arbitrary Python expressions in many points, for instance in transitions guards or arcs outgoing of transitions. This provides out of the box a great flexibility.
Another important feature of SNAKES is the plugin system that allows to extend the features, for instance to work with specialised classes of Petri nets (e.g., plugins are provided to draw nets, or to compose them using the various control-flows operations). Plugins are another way to introduce flexibility but requiring some involvement.
Documentation
- a tutorial describes installation, the first steps using SNAKES and various simple use cases
- various articles address more advanced notions
- API reference manual documents the modules, classes and functions of SNAKES
Download and useful links
- PyPI page (Python Package Index) to
pip install SNAKES
- GitHub (source repository, history, bug reports, ...)
- its GitLab clone hosted at IBISC
- direct download link (Python source archive with installer)
- @SNAKESlib on Twitter
Author and licence
SNAKES is mainly developed by Franck Pommereau and is distributed as free software under the GNU LGPL licence.
Citing SNAKES
You may cite these papers to refer to SNAKES, listed from the most recent (preferred) to the oldest:
- Franck Pommereau. SNAKES: a flexible high-level Petri nets library. Proceedings of PETRI NETS'15. LNCS 9115, Springer 2015.
- Franck Pommereau. Quickly prototyping Petri nets tools with SNAKES. Petri net newsletter, October 2008.
If you wish to advertise SNAKES, maybe you'll want to display the poster.