FSM is a finite state machine for Go. It is heavily based on two FSM implementations. Javascript Finite State Machine, and Fysom for Python. Visualize outputs a visualization of a FSM in Graphviz format. VisualizeForMermaidWithGraphType outputs a visualization of a FSM in Mermaid format as specified by the graphType. VisualizeWithType outputs a visualization of a FSM in the desired format. If the type is not given it defaults to GRAPHVIZ. Callback is a function type that callbacks should use. Event is the current event info as the callback happens. Callbacks is a shorthand for defining the callbacks in NewFSM. CanceledError is returned by FSM.Event() when a callback have canceled a transition. Async can be called in leave_<STATE> to do an asynchronous state transition.

Features

  • FSM is licensed under Apache License 2.0
  • Package fsm implements a finite state machine
  • Based on Javascript Finite State Machine
  • Based on Fysom for Python
  • Visualize outputs a visualization of a FSM in Graphviz format
  • VisualizeWithType outputs a visualization of a FSM in the desired format

Project Samples

Project Activity

See All Activity >

Categories

Frameworks

License

Apache License V2.0

Follow FSM for Go

FSM for Go Web Site

Other Useful Business Software
Full-stack observability with actually useful AI | Grafana Cloud Icon
Full-stack observability with actually useful AI | Grafana Cloud

Our generous forever free tier includes the full platform, including the AI Assistant, for 3 users with 10k metrics, 50GB logs, and 50GB traces.

Built on open standards like Prometheus and OpenTelemetry, Grafana Cloud includes Kubernetes Monitoring, Application Observability, Incident Response, plus the AI-powered Grafana Assistant. Get started with our generous free tier today.
Create free account
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of FSM for Go!

Additional Project Details

Operating Systems

Linux, Mac, Windows

Programming Language

Go

Related Categories

Go Frameworks

Registered

2023-01-24