# uSCXML ReadMe uSCXML is a SCXML interpreter written in C/C++. It is still in a rather early stage but mostly feature-complete as far as the W3C SCXML draft specifies. It runs on most 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. * Datamodels * ECMAScript using Google's v8 and JavaScriptCore (JSC is incomplete) * Prolog using SWI prolog * 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 * httpservlet: Sends events for http requests to special paths * 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 * Can actually respond to HTTP requests with data via <response> * Language Bindings * PHP module for apache and cli interpreter ## Test Reports [Results](http://uscxml.tk.informatik.tu-darmstadt.de/cdash/index.php?project=uscxml) for continuous testing of the [W3C IRP tests](http://www.w3.org/Voice/2013/scxml-irp/) for SCXML and some platform tests.
Test#StatusComment
178Failed / Won't fix A manual test that relies on an unspecified _event.raw attribute
230False report A manual test that is not actually failing but does not end in a state called pass
250False report A manual test that is not actually failing but does not end in a state called pass
301Failed "If the script can not be downloaded within a platform-specific timeout interval, the document is considered non-conformant, and the platform must reject it" -- USCXML will try to evaluate the rest of the document nevertheless.
307False report A manual test that is not actually failing but does not end in a state called pass
329Failed / Won't fix Tests that _event cannot be assigned, but I like to add attributes to _event to have a scope that only lasts for one event. Will raise the issue on the ML.
333Failed / Won't fix "sendid [...] Otherwise it must leave it blank." -- USCXML sets this to the empty string instead of null.
335Failed / Won't fix "origin [...] For internal and platform events, the Processor must leave this field blank." -- USCXML sets this to the empty string instead of null.
337Failed / Won't fix "origintype [...] For internal and platform events, the Processor must leave this field blank." -- USCXML sets this to the empty string instead of null.
339Failed / Won't fix "invokeid [...] Otherwise it must leave it blank." -- USCXML sets this to the empty string instead of null.
346Failed / Won't fix "test that any attempt to change the value of a system variable causes error.execution to be raised." -- I like to edit _event.
## 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/umundo/blob/master/docs/BUILDING.md).