# uSCXML ReadMe uSCXML is a SCXML interpreter written in C/C++. It is [mostly feature-complete](https://github.com/tklab-tud/uscxml#test-reports) as far as the W3C SCXML draft specifies. It runs on Linux, Windows and MacOSX, each 32- as well as 64Bits. There is no technical reason for it not to run on iOS and Android as well, but we did not yet setup the respective build-process and did not precompile required libraries. * Datamodels * ECMAScript using Google's v8 and JavaScriptCore (JSC is incomplete) * Prolog using SWI prolog * NULL datamodel with required In predicate * No XPath datamodel yet * Invokers * scxml: Invoke a nested scxml interpreter * dirmon: Watches a directory for changes to files * scenegraph: Simplified 3D scenegraphs with custom markup * heartbeat: Periodically sends events * umundo: Subscribe to channels and publish events * DOM * DOM Core Level 2 + XPath extensions available for ecmascript datamodel * Namespace aware to embed custom markup for special invokers * Communication * Features the standard basichttp io-processor * Features the required SCXML io-processor * No DOM io-processor yet * Can actually respond to HTTP requests with data via <response> * Language Bindings * PHP module for apache and cli interpreter ## Test Reports We continuously run the [W3C IRP tests](http://www.w3.org/Voice/2013/scxml-irp/) for SCXML. The results the for various platforms can be [found here](http://uscxml.tk.informatik.tu-darmstadt.de/cdash/index.php?project=uscxml). There are a few [excluded tests](https://github.com/tklab-tud/uscxml/blob/master/contrib/ctest/CTestCustom.ctest.in) regarding the XPath datamodel and the manual tests. uSCXML still fails the following tests:
Test#StatusDescriptionComment
301 Failed "the processor should reject this document because it can't download the script" uSCXML continues processing as if there was no <script> element.
329 Failed "test that none of the system variables can be modified" uSCXML allows writing to _event. This is very useful to have a scope that vanishes when processing an event is finished.
346 Failed "test that any attempt to change the value of a system variable causes error.execution to be raised" Same issue as above: we allow writing to _event.
488 Failed "test that illegal expr in <param> produces error.execution and empty event.data" The actual meaning of empty is still ambiguous - in test 343 it is assumed to be undefined.
## License uSCXML itself is distributed under the Simplified BSD license as in, do not sue us and do not misrepresent authorship. Please have a look at the licenses of the [libraries we depend upon](https://github.com/tklab-tud/uscxml/blob/master/docs/BUILDING.md#build-dependencies) as well. ## Download We do not yet feature installers. Please download the source and have a look at the [build instructions](https://github.com/tklab-tud/uscxml/blob/master/docs/BUILDING.md).