jbeard4 / SCION

SCXML/Statecharts in JavaScript, moved to gitlab: https://gitlab.com/scion-scxml/scion
https://scion.scxml.io
Apache License 2.0
149 stars 29 forks source link

Overview

Backers on Open Collective Sponsors on Open Collective

SCION is an industrial-strength implementation of W3C SCXML in JavaScript.

SCXML provides a declarative markup for Statecharts, a powerful modelling language for developing complex, timed, event-driven, state-based systems.

Installation

node.js

npm install scxml

browser

Script tag with cdnjs

Add the following script tags to your HTML:

<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.23.0/polyfill.min.js">
<script src="https://cdnjs.cloudflare.com/ajax/libs/scion/4.3.1/scxml.min.js">

Then SCION API available as global singleton object scxml.

npm and browserify

Install babel-polyfill and scxml with npm:

npm install --save scxml babel-polyfill

Then add to your application entry point:

require('babel-polyfill');
let scxml = require('scxml');

Quickstart

scxml.urlToModel("drag-and-drop.xml",function(err,model){

  if(err) throw err;

  model.prepare(function(err, fnModel) {

    if(err) throw err;

    //instantiate the interpreter
    var sc = new scxml.scion.Statechart(fnModel);

    //start the interpreter
    sc.start();

    //send the init event
    sc.gen({name:"init",data:rect});

  });
})

API

See the API docs here.

Backwards-compatibility with SCION@3.x

See the note here.

Contributors

This project exists thanks to all the people who contribute.

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

Support

To report a bug: file an issue on GitHub.

For general questions: Join the chat at https://gitter.im/SCION-SCXML/Lobby

Build Status

Build status