9 个版本 (破坏性更新)
0.13.0 | 2024年1月7日 |
---|---|
0.12.0 | 2022年5月7日 |
0.11.0 | 2022年2月21日 |
0.10.0 | 2021年7月25日 |
0.7.0 | 2021年5月23日 |
#21 in #随机
每月 97 次下载
用于 sim
8KB
"Sim" 或 "SimRS" 是一个离散事件模拟包,它简化了基于 Rust 和 npm 的模拟产品和项目的开发。
此仓库包含
- 随机变量框架,用于轻松指定随机模型行为。
- 开箱即用的模型,用于快速构建具有常用模块组件的动态系统模拟。
- 输出分析框架,用于统计分析模拟输出。
- 模拟器引擎,用于管理和执行离散事件模拟。
- 自定义模型宏,用于无缝地将自定义模型集成到模拟中。
Sim 与广泛的编译目标兼容,包括 WebAssembly。Sim 不需要 nightly Rust。
目录
背景
模拟是分析和设计复杂系统的强大工具。然而,大多数模拟器学习曲线陡峭,是专有的,并且可移植性有限。Sim 致力于减少构建新的模拟产品、完成模拟项目和学习模拟基础所需的时间。Sim 是开源的,并且由于编译目标的灵活性,相对易于移植。
安装
在 Rust 代码库中使用时,将包作为 cargo
依赖项使用
[dependencies]
sim = "0.13"
在 JavaScript/TypeScript 代码库中作为 WebAssembly 模块使用时,将包作为 npm
依赖项使用
npm i sim-rs
用法
Rust 模拟是通过将 Model
和 Connector
传递给 Simulation
的 post
构造函数来创建的。WebAssembly 模拟以声明性的 YAML 或 JSON 格式定义,然后通过 WebSimulation
的 post_yaml
或 post_json
构造函数进行摄取。定义模拟需要模型和连接器。有关内置模型的描述,请参阅 MODELS.md。
可以使用 step
、step_n
和 step_until
方法逐步执行模拟。可以使用 inject_input
方法进行输入注入。
分析模拟通常涉及处理模型记录、收集消息传输和使用输出分析工具的一些组合。可以进行 IID 样本和时间序列数据的分析。
请参阅 https://docs.rs/sim 的文档。此外,测试模拟 是创建、运行和分析 Sim 模拟的良好参考。
贡献
问题、功能请求和拉取请求始终受到欢迎!
许可
该项目可在您的选择下根据 Apache License, Version 2.0 或 MIT License 许可。
除非您明确表示,否则您提交给 sim 的任何有意包含的贡献,根据 Apache-2.0 许可证定义,将根据上述许可证双重许可,不附加任何额外条款或条件。
依赖关系
~1.5MB
~36K SLoC