Skip to content
matthewpPublic

About

🤖 A functional, immutable Finite State Machine library

Resources

Code of conduct

Contributing

Stars

2.2k stars

Watchers

15 watching

Forks

Latest commit

 

History

384 Commits

Folders and files

Repository files navigation

Robot

The Robot logo, with green background.

A small functional and immutable Finite State Machine library. Using state machines for your components brings the declarative programming approach to application state.

See regularhuman.dev for the main documentation.

import { createMachine, interpret, state, transition } from 'robot3';

let machine = createMachine({
  off: state(
    transition('toggle', 'on')
  ),
  on: state(
    transition('toggle', 'off')
  )
});

const service = interpret(machine, () => {
  render();
});

📚 Documentation

Testing

Tests are located in the test/ folder. Load test/test.html in your browser of choice with any HTTP server you like (I use http-server). Tests are written in QUnit and are simple to understand.

Integrations

Robot works with a variety of UI libraries, and includes integrations for React, Preact, Haunted, and more. See the documentation to learn more.

Tools

  • Visualization of robot state machines: robot3-viz

License

BSD-2-Clause

About

🤖 A functional, immutable Finite State Machine library

Resources

Code of conduct

Contributing

Stars

2.2k stars

Watchers

15 watching

Forks

Releases

Packages

Used by

Contributors

Languages