1. Russell Hay
  2. ginsfsm


ginsfsm /

Filename Size Date modified Message
193 B
422 B
416 B
4.8 KB
505 B
3.5 KB
1.9 KB
26 B
2.2 KB
214 B
189 B
2.5 KB
602 B


Can you draw your development?

Can you view the behaviour of your application in real time?

With this framework you can!.

GinsFSM is a python library to develop systems based in finite-state machines (http://en.wikipedia.org/wiki/Finite-state_machine). This model is really useful when writing networking and communication applications.

The idea is very simple:

  • All objects, called gobj, are instances of a derived ginsfsm.gobj.GObj class.
  • The GObj has an inside simple-machine that defines its behavior.
  • The communication between gobj's happens via event's.

Thus, the nature of this system is fully asynchronous and event-driven.

The interface is simple and common to all objects; you just have to change the name of the event and the data they carry.

It includes a full asynchronous http server and wsgi server.

The wsgi server is inspired in Tornado and Waitress projects and using the best of both.

You can run multiple wsgi applications.

Ginsfsm comes with a variety of scaffolds that you can use to generate a project.

Like Pyramid framework pcreate/pserve commands, Ginsfsm provides the gcreate/gserve commands, to create and run ginsfsm projects.

With gcreate command you can create a ginsfsm project. For example, with multi_pyramid_wsgi scaffold, you will create a multiple wsgi application project, one of wsgi application being a Pyramid wsgi application.

The GObj's objects are Pyramid "location-aware" resources. Also, the gobj's are a hierarchical tree, also therefore the use of traversal dispatching are all natural.

And a new feature is that the views and resources are defined in the same file. If you want of course!

Support and Documentation

See the <http://ginsfsm.org/> to view documentation.

Code available in <https://bitbucket.org/artgins/ginsfsm>


Copyright (c) 2012, Ginés Martínez Sánchez.

GinsFSM is released under terms of The MIT License <http://www.opensource.org/licenses/mit-license>