3 个版本 (破坏性更新)
使用旧 Rust 2015
0.2.0 | 2017 年 8 月 27 日 |
---|---|
0.1.0 | 2017 年 7 月 23 日 |
0.0.1 | 2017 年 7 月 5 日 |
#281 in 模拟
84KB
1.5K SLoC
关于 score
score 是用 Rust 编写的一个通用离散事件模拟器。关键类型包括
- Simulation 负责协调模拟的执行。
- Component 用于定义模拟的结构。 Active 组件使用一个线程来处理事件。
- Event 是指在特定时间安排发送到组件的命名消息。事件可能有一个可选的有效负载(它必须满足 Any 和 Send 特性)。
- Store 是组件持久化状态的地方。(使用存储允许使用像 sdebug 这样的 GUI 工具查看和更改状态,并允许仔细管理副作用。)
- 组件使用 Effector 来进行更改。组件可以使用 effector 来记录,在其存储中更改自己的状态,并安排发送到任意组件的事件。
score 的目标包括
- 它应该足够灵活,可以模拟几乎所有类型的离散事件模拟。
- 它应该高效,并利用多核。目前所有在同一时间有安排事件的组件都并行处理事件。还应该能够利用 effector 来进行推测性并行执行。
- 副作用应该得到仔细控制,特别是组件影响另一个组件的唯一方式应该是通过事件。
- 模拟执行应该在不同的运行和平台上具有确定性。
- 它应该支持模拟结果的离线分析。(这还没有实现,但应该不难实现。)
- 应该有一个 GUI 工具来分析正在运行的模拟。
版本
- 0.2.0 - 添加了嵌入式 REST 服务器以支持像 sdebug 这样的 GUI
- 0.1.0 - 许多改进
- 0.0.1 - 初次发布
发布版本的在线文档可以在 crates.io 上找到。
依赖项
~13MB
~255K SLoC