GenFSM

Elixir wrapper around Erlang's OTP gen_fsm.

Motivation

Elixir deprecated its wrapper around OTP's gen_fsm from the standard library because it is difficult to understand and suggested that developers seek other finite state machine implementations.

This is understandable, but some of us still need/prefer to use the OTP gen_fsm.

I took the basis of Elixir's old GenFSM.Behaviour and added some additional convenience methods. Currently missing are the enter_loop methods.

Usage

Just use GenFSM in your FSM module

defmodule MyFSM do
  use GenFSM
  
  # TODO: add some better examples
end

Installation

If available in Hex, the package can be installed as:

  1. Add gen_fsm to your list of dependencies in mix.exs:

    def deps do

     [{:gen_fsm, "~> 0.0.1"}]

    end

Documentation

Complete API documentation can be found at http://erlang.org/doc/man/gen_fsm.html and OTP design principal documentation lives at http://erlang.org/doc/man/gen_fsm.html