3个版本 (破坏性)

0.3.0 2023年3月8日
0.2.1 2023年2月15日
0.2.0 2023年1月31日
0.1.1 2022年11月25日
0.1.0 2022年11月4日

#134 in 仿真

LGPL-3.0-or-later

65KB
1.5K SLoC

xDEVS.rs

xDEVS仿真器的Rust项目版本。它允许您根据DEVS形式化方法构建和模拟计算模型。其API易于使用,适合DEVS从业者。目前,其主要特性是速度和并行性。

闪电般快速 🚀

Rust版本的xEDEV是目前最快的API之一。我们将很快发布一些初步结果来展示这一点。

不安全但可靠 🔐

我们都喜欢纯安全的Rust包。然而,提供安全且快速的DEVS事件传播实现非常困难。因此,我们决定使用unsafe Rust来模拟DEVS端口和消息传播。这样,我们可以提供我们所能想到的最快的DEVS实现。但不用担心!我们已经仔细研究了DEVS仿真算法,提出了所有使我们的实现即使在unsafe代码中也是安全的公理。所有端口的unsafe方法都带有适当的文档,以便您知道何时可以使用这些unsafe方法!

剧透警告:如果您不尝试黑客 DEVS仿真工作流程,那么您将始终满足使您的模型安全构建的公理。

完全可配置的并行性 🧶

我们依靠rayon包为您提供仿真过程的并行性。默认情况下,所有仿真过程都是顺序执行的。但是,您可以激活不同的功能来选择您想要利用并行性的地方

  • par_start:它在开始模拟之前并行运行您模型的启动方法。
  • par_collection:它并行执行您模型的lambdas。
  • par_eoc:它并行传播EOCs(我们不推荐此功能,它可能被删除)。
  • par_xic:它并行传播EICs和ICs(我们不推荐此功能,它可能被删除)。
  • par_transition:它并行执行您模型的deltas(我们推荐此功能)。
  • par_stop:它在仿真后并行运行您模型的停止方法。

有用的组合特性

我们提供额外的功能,以选择方便的功能组合。

  • par_xxc:是 par_eocpar_xic 的别名(我们不推荐此功能,它可能被删除)。
  • par_sim_no_xcc:是 par_collectionpar_transition 的别名。
  • par_sim:是 par_xxcpar_sim_no_xcc 的别名(我们不推荐此功能,它可能被删除)。
  • par_all_no_xcc:是 par_startpar_sim_no_xccpar_stop 的别名(这是我们最喜欢的)。
  • par_all:是 par_xxcpar_all_no_xcc 的别名(我们不推荐此功能,它可能被删除)。

工作进行中 👷‍♀️👷👷‍♂️

我们仍在开发这个crate,并希望在不远的将来添加许多酷炫的功能。请保持关注!如果您想贡献,请随时在GitHub上打开一个问题,我们将尽快回复。

依赖关系

~0–445KB