Scxml processor

I'm wondering why there isn't an scxml processor for Rust.
It looks like anyone who'd need one either uses Javascript on the client or Python or C++ on the server.
I'm not sure Rust would add anything, other than ... being in Rust.
It looks like starting with the NULL datamodel, moving to ECMAScript might be a useful approach if such a tool is worth building.
A question 3 yrs. ago got 0 answers; which may be where this one lands as well.

For the usual reason: Nobody has yet volunteered to put in the effort to write it, either themselves or via hiring a 3rd-party developer.

As for why this is the case, I can only speculate. If it's like most XML-based specifications, there will be lots of edge cases described in excruciating detail which make clean-sheet implementations quite complicated (and therefore expensive) to write.

2 Likes

I hadn't heard of SCXML before. I suspect part of the reason why there is no Rust implementation is that this probably applies to most people. Also I don't really understand what you did need it for. Is it for describing the maze of questions you need to navigate when calling many large corporations?

3 Likes

I stumbled accross it a few years ago when looking for a way to build sales pages in HTML & ECMAScript. At that time, I wound up using SCION (which is referenced on that wiki page).
I don't need it for anything now, other than to improve my Rust skills.

If it's like most XML-based specifications....

Exactly why I asked the question. As I get further into the W3 spec, that's becoming clear. Also, it's also still a draft, even after a decade. So maybe it never got the uptake that such a tool might need. It seems to have been focussed on implementations around voice communication automation.

The Python implementation is quite readable, so there is that bootstrap. I'm not attempting a clean-sheet implementation in that I want to see how Python & C++ do it.

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.