scjson

scjson logo

scjson Rust Crate

This directory contains the Rust implementation of scjson. It offers a command line tool and supporting library to convert between .scxml and .scjson files and to validate documents.

For details on how SCXML elements are inferred during conversion see INFERENCE.md.

Installation

cargo install scjson

You can also build from this repository:

cd rust && cargo build --release

Source Code - Multi-Language Support

[https://github.com/SoftOboros/scjson/]

Command Line Usage

scjson json path/to/machine.scxml
scjson xml path/to/machine.scjson
scjson validate path/to/dir -r

Known Issues

None at this time.

Operational conformance testing is performed via uber_test.py

/py# python uber_test.py -l javascript 2>&1 | tee test.log

Note: uber_test.py applies all scxml files in Zhornyak’s ScxmlEditor-Tutorial which provides a robest set of scxml test vectors useful for standard compliance verification. This is the only file in the test suite which fails to verify round-trip.

Enums

Each enumeration represents a restricted string set used by SCXML. The values shown below mirror those defined in the SCJSON schema.

Common Types

Several generated classes share generic helper fields:

Document / Object Types

Other Resources

github: [https://github.com/SoftOboros/scjson]

git clone https://github.com/SoftOboros/scjson.git

git clone git@github.com:SoftOboros/scjson.git

gh repo clone SoftOboros/scjson

npm: [https://www.npmjs.com/package/scjson]

npm install scjson

pypi: [https://pypi.org/project/scjson/]

pip install scjson

dockerhub: [https://hub.docker.com/r/iraa/scjson] (Full development environment for all supported languages)

docker pull iraa/scjson:latest

All source code in this directory is released under the BSD 1-Clause license. See LICENSE and LEGAL.md for details.