This package provides an implementation of a finite state machine in Go (http://golang.org/), inspired by David Mertz's article "Charming Python: Using state machines" (http://www.ibm.com/developerworks/library/l-python-state/index.html).
Install the package in your environment:
$ go get github.com/dpapathanasiou/go-statemachine
Make sure the GOPATH environment variable is defined correctly and test it:
$ go test github.com/dpapathanasiou/go-statemachine ok github.com/dpapathanasiou/go-statemachine 0.014s
To use it within your own code, import "github.com/dpapathanasiou/go-statemachine" and instantiate the state machine with an empty map of handler functions, along with the string name of the initial state handler function.
See the statemachine_test.go file included in this package.