#events #discrete #stochastic #modeling

sim_derive

Sim Derive 是一个宏库,支持 Sim 离散事件模拟包

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 #随机

Download history 21/week @ 2024-03-15 4/week @ 2024-03-22 12/week @ 2024-03-29 3/week @ 2024-04-05 5/week @ 2024-04-12 7/week @ 2024-04-19 3/week @ 2024-05-24 2/week @ 2024-05-31

每月 97 次下载
用于 sim

MIT/Apache

8KB

Sim

"Sim" 或 "SimRS" 是一个离散事件模拟包,它简化了基于 Rust 和 npm 的模拟产品和项目的开发
Rust- 和 npm- 基础上的模拟产品和项目的开发

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 许可证定义,将根据上述许可证双重许可,不附加任何额外条款或条件。

依赖关系

~1.5MB
~36K SLoC