#状态图 #响应式 #状态机 #事件驱动

状态图

statecharts:分层、响应式状态机

9 个版本

使用旧的 Rust 2015

0.0.8 2017 年 9 月 18 日
0.0.7 2017 年 9 月 14 日
0.0.6 2017 年 8 月 28 日

#4 in #状态图

MIT 许可证

42KB
1K SLoC

statechart

Build Status Crate

statechart 是状态图的 Rust 实现。状态图是一种表示分层状态机的视觉方法,适用于描述反应式、事件驱动系统。状态图最初由 Harel87 提出。 Harel07 介绍了状态图的创新和发展背景。对于技术背景、MDSD 的应用和实际系统设计,请参阅 D. Harel and M. Politi, Modeling Reactive Systems with Statecharts: The STATEMATE Approach, (with M. Politi)

当前项目重点

这个 crate 最初旨在提供状态图文档模型和解释器,受 W3C State Chart XML 规范 中的概念、实体和行为的影响,可能主要是同构的。然而,重点不是完全符合 scxml,而是以下用例

  • Rust 宏,用于从 Rust 代码直接表达和执行状态图。
  • 解释器与 futures & streams 兼容,以支持异步执行。
  • 使用软件代理自动化一些有用的操作任务,这些代理以状态图的形式表达。
    • 个人助理
    • 自动化软件操作,自动-{恢复,扩展,警报,重新配置}
    • 隐私和安全,“态势感知”用于网络应用和设备
  • 性能,在有用性和正确性之后

可能的进一步研究兴趣领域

我尚未积极开发的应用程序,但可能是有趣且有用的贡献

  • no_std 对嵌入式应用的支持。这是状态图最初被发明的原因!
  • 编译器后端。目标为 LLVM 或 FPGA!
  • SCXML 兼容性,在不与上述目标冲突的情况下,并且有很好的使用尖括号的地方。

版权所有 2017 Casey Marshall

在此特此授予任何获得本软件及其相关文档文件(以下简称“软件”)副本的任何人无限制地处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、许可和/或销售软件副本,并允许获得软件的人这样做,但受以下条件约束

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和版权侵犯保证。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任(无论基于合同、侵权或其他原因)承担责任,该责任源于、产生于或与软件或软件的使用或其他方式相关。

依赖项

约6.5MB
约139K SLoC