17个版本 (重大更改)
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.0.1 |
|
#26 in 仿真
每月 43次下载
165KB
4K SLoC
Sim
"Sim"或"SimRS"是一个离散事件仿真包,它简化了基于Rust和npm的仿真产品和项目的开发。
Rust-和npm-based simulation products and projects
"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 许可证中定义,均应如上双重许可,无需附加条款或条件。
依赖项
~9-13MB
~243K SLoC