8个版本 (4个破坏性更新)
| 0.7.1 | 2024年7月5日 |
|---|---|
| 0.7.0 | 2024年7月4日 |
| 0.6.0 | 2024年4月24日 |
| 0.5.2 | 2024年2月21日 |
| 0.1.0 | 2023年8月29日 |
#1276 in 游戏开发
每月下载量709
在2个crate中使用(通过bevy_rand)
15KB
284 行
Bevy PRNG
什么是Bevy PRNG?
bevy_prng是一个crate,它提供了各种rand_* PRNG算法crate的新类型版本,以便在bevy中进行反射。它使这些类型具有稳定的TypePath,并实现各种所需的特质。此crate可以作为独立单元使用,以访问各种选择的PRNG算法,然后用于在bevy中编写组件/资源,但它的主要目的是支持和与bevy_rand(提供通用包装组件/资源,bevy_prng类型可以插入)相对应。
使用Bevy PRNG
默认情况下,bevy_prng不会导出任何内容,除非显式定义了所需的特性/算法。为了访问新类型的RNG结构,您需要激活以下特性之一
rand_chacha- 此特性启用了导出新类型的ChaCha*Rng结构体,供需要使用CSPRNG级别的源的人使用。rand_pcg- 此特性启用了从rand_pcg导出新类型的Pcg*结构体。rand_xoshiro- 此特性启用了从rand_xoshiro导出新类型的Xoshiro*结构体。它还重新导出Seed512,以便无需显式引入rand_xoshiro即可设置Xoshiro512StarStar等。wyrand- 此特性启用了从wyrand导出新类型的WyRand,与在fastrand/turborand中使用的相同算法。
除了这些用于启用各种支持算法的功能标志之外,还有一个 serialize 标志,用于提供 serde 对 Serialize/Deserialize 的支持,默认情况下是启用的。
所有类型都在模块的最顶层提供
use bevy_prng::*;
支持的PRNG算法/库
以下所有库都实现了必要的特性和 bevy_prng 兼容的特性行为。可以通过向该库/存储库提交PR来添加额外的PRNG库,前提是PRNG实现了 Debug、Clone、PartialEq 以及可选的 Serialize/Deserialize serde 特性,并且这些特性放在合适的特性标志后面。
密码学安全的PRNG
非密码学安全的PRNG
支持的版本 & MSRV
bevy_prng 使用与 bevy 相同的MSRV。
bevy |
bevy_prng |
|---|---|
| v0.13 | v0.5 |
| v0.12 | v0.2 |
| v0.11 | v0.1 |
rand_core 的版本
bevy_prng |
rand_core |
rand |
|---|---|---|
rand_chacha |
rand_xoshiro |
rand_pcg |
rand_pcg
rand_pcg
rand_pcgrand_pcg
rand_pcg
rand_pcg
rand_pcg
rand_pcg