asl
This library provides an implementation of Amazon States Language (ASL) in Rust.
The library can parse and execute state machines defined in ASL.
Example: Hello world
This example will print the strings Hello and World:
See: test_hello_world.rs.
Amazon States Language (ASL)
The Amazon States Language is a JSON-based, structured language used to define your state machine, a collection of states, that can do work (Task states), determine which states to transition to next (Choice states), stop an execution with an error (Fail states), and so on.
For a complete definition of ASL, refer to the Amazon States Language Specification.
IMPORTANT: This project is NOT affiliated with Amazon in any way.
ASL is deeply connected to AWS Step Functions. This means that in many places, the definition from the language specification is not specified, so this library opts into following the results from AWS Step Functions.
Feature Matrix
The main features that are already implemented or missing are listed in the following table:
| Feature | Status |
|---|---|
| State execution workflow | Implemented |
| JSON Paths and Reference Paths | Implemented |
| States: Pass | Implemented |
| States: Wait | Implemented |
| States: Fail | Implemented |
| States: Choice | Implemented |
| States: Succeed | Implemented |
| States: Task | Implemented, but not all features. See other features in this table. |
| States: Task - Timeout | Not implemented (https://github.com/edisongustavo/asl-rust/issues/9) |
| States: Task - Hearbeat | Not implemented (https://github.com/edisongustavo/asl-rust/issues/10) |
| States: Task - Retry | Not implemented (https://github.com/edisongustavo/asl-rust/issues/11) |
| State: Parallel | Not Implemented (https://github.com/edisongustavo/asl-rust/issues/2) |
| State: Map | Not Implemented (https://github.com/edisongustavo/asl-rust/issues/1) |
| Intrinsic Functions | Not Implemented (https://github.com/edisongustavo/asl-rust/issues/4) |
License
This project is licensed under the MIT License.