18个版本

0.9.0-alpha.22024年7月29日
0.9.0-alpha.12024年3月18日
0.9.0-alpha.02024年2月18日
0.6.4 2022年9月15日
0.0.1 2017年9月14日

#38 in 算法

Download history 2722861/week @ 2024-05-01 2754183/week @ 2024-05-08 2865535/week @ 2024-05-15 2817611/week @ 2024-05-22 3050585/week @ 2024-05-29 3098451/week @ 2024-06-05 3126217/week @ 2024-06-12 2917519/week @ 2024-06-19 3062017/week @ 2024-06-26 2773583/week @ 2024-07-03 3023523/week @ 2024-07-10 3050749/week @ 2024-07-17 3118148/week @ 2024-07-24 3092079/week @ 2024-07-31 3287112/week @ 2024-08-07 2566670/week @ 2024-08-14

12,637,695 每月下载量
41,389 个crate中使用 (998直接)

MIT/Apache

62KB
769

rand_core

Test Status Latest version Book API API

rand 库的核心特性和错误类型,以及实现RNG的工具。

此crate旨在在实现核心特 性 RngCore 时使用;它定义了要实现的核 心特性以及几个辅助函数和错误处理所需的数据类型。

主要的 rand crate导出了此crate中定义的大多数项,以及将RngCore生成的整数样本转换为许多不同应用(包括从受限范围内抽取样本、转换为浮点数、列表排列和RNG的安全初始化)的工具。大多数用户应首选使用主要的 rand crate。

链接

功能

rand_core crate提供

  • 基础随机数生成器特性
  • 错误报告类型
  • 辅助RNG实现的函数

特性和错误类型也通过 rand 提供。

版本

当前版本是

rand_core = "0.6.4"

随机库之间存在相互依赖关系,并使用semver技巧,以确保特质在不同crate版本之间兼容。这对于RngCoreSeedableRng尤其重要。因此,一些crate发行版实际上是兼容性补丁,依赖于下一个lib版本(例如rand_core版本0.2.20.3.1)。这意味着,例如,rand_core_0_4_0::SeedableRngrand_core_0_3_0::SeedableRng是不同的、不兼容的特性,这可能导致构建错误。通常,运行cargo update就足以修复任何问题。

crate特性

rand_core支持no_std和仅alloc的配置,以及完整的std功能。与no_std和完整std之间的差异很小,包括对支持RngCoreBox<R>类型的R: RngCoreRngCore支持、对支持RngCore的类型进行std::io::Read的支持以及对Error类型功能性的扩展。

默认情况下,不启用std特性。这主要是为了避免在构建过程中出现一个问题,其中一个crate隐式地需要具有std支持的rand_core,而另一个crate需要rand 具有对std的支持。然而,rand crate继续默认为自身和rand_core启用std支持。

可以使用serde特性为使用BlockRngBlockRng64包装器实现的RNG实现派生SerializeDeserialize

许可证

rand_core在MIT许可证和Apache许可证(版本2.0)的条款下分发。

请参阅LICENSE-APACHELICENSE-MIT,以及COPYRIGHT以获取详细信息。

依赖关系

~0.5–1MB
~13K SLoC