#events #discrete #stochastic #modeling #time-series

sim

Sim是一个离散事件仿真包,它简化了基于Rust和npm的仿真产品和项目的开发。

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 2016年4月9日

#26 in 仿真

每月 43次下载

MIT/Apache

165KB
4K SLoC

Sim

"Sim"或"SimRS"是一个离散事件仿真包,它简化了基于Rust和npm的仿真产品和项目的开发。
Rust-和npm-based simulation products and projects

Sim网站 | Sim演示 | Sim文档


stability-experimental GitHub Workflow Status Crates.io Crates.io npm npm docs.rs Codecov Crates.io

"Sim"或"SimRS"是一个离散事件仿真包,它简化了基于Rust和npm的仿真产品和项目的开发。

此仓库包含

  1. 随机变量框架,用于轻松指定随机模型行为。
  2. 现成模型,用于快速构建具有常见模块化组件的动态系统仿真。
  3. 输出分析框架,用于统计分析仿真输出。
  4. 仿真引擎,用于管理和执行离散事件仿真。
  5. 自定义模型宏,用于无缝将自定义模型集成到仿真中。

Sim与各种编译目标兼容,包括WebAssembly。Sim不需要nightly Rust。

目录

背景

仿真是分析和设计复杂系统的强大工具。然而,大多数仿真器具有陡峭的学习曲线,是专有的,并且可移植性有限。Sim旨在缩短构建新仿真产品、完成仿真项目和学习仿真基础所需的时间。Sim是开源的,并且由于编译目标灵活性,相对可移植。

安装

在Rust代码库中使用时,将包作为cargo依赖项使用

[dependencies]
sim = "0.13"

在JavaScript/TypeScript代码库中作为WebAssembly模块使用时,将包作为npm依赖项使用

npm i sim-rs

用法

Rust 模拟通过将 ModelConnector 传递给 Simulationpost 构造函数来创建。WebAssembly 模拟以声明性的 YAML 或 JSON 格式定义,然后通过 WebSimulationpost_yamlpost_json 构造函数进行摄取。定义模拟需要模型和连接器。有关内置模型的描述,请参阅 MODELS.md

可以使用 stepstep_nstep_until 方法对模拟进行步进。可以使用 inject_input 方法进行输入注入。

分析模拟通常涉及处理模型记录、收集消息传输和使用输出分析工具的组合。可以进行 IID 样本和时间序列数据的分析。

请参阅 https://docs.rs/sim 的文档。此外,测试模拟 是创建、运行和分析 Sim 模拟的良好参考。

贡献

欢迎提出问题、功能请求和拉取请求!

许可证

该项目可根据您的选择在 Apache License, Version 2.0MIT License 下获得许可。

Apache License, Version 2.0

MIT License

除非您明确声明,否则任何旨在包含在 sim 中的贡献,如 Apache-2.0 许可证中定义,均应如上双重许可,无需附加条款或条件。

依赖项

~9-13MB
~243K SLoC