庞大的随机数生成:生成一个随机数需要多少行代码?

庞大的随机数生成:生成一个随机数需要多少行代码?

💡 原文英文,约1200词,阅读约需5分钟。
📝

内容提要

文章讨论了Rust中的rand库及其庞大的依赖关系,指出虽然rand库本身表现良好,但其复杂的依赖和安全性问题引发了开发者的关注。作者分析了依赖的代码量和编译时间,质疑生成随机数是否真的需要如此多的依赖。

🎯

关键要点

  • 文章讨论了Rust中的rand库及其庞大的依赖关系。
  • rand库表现良好,但其复杂的依赖和安全性问题引发了开发者的关注。
  • 作者分析了依赖的代码量和编译时间,质疑生成随机数是否真的需要如此多的依赖。
  • rand库的依赖树在过去九个月中变得更加庞大。
  • 当前版本的rand库在Linux和Mac上使用libc,而在Windows上使用较重的Microsoft库。
  • 存在一个名为fastrand的库,它没有依赖关系,可以从标准库获取种子。
  • 对依赖链的审计显示,维护者分为八个不同的组。
  • 去除测试后,vendored的代码占用62MB磁盘空间,包含209,150行代码。
  • 编译时间在高端M1 Max上为4.3秒,依赖关系之间的阻塞导致编译时间增加。
  • 作者质疑是否真的需要如此多的依赖来生成随机数。

延伸问答

Rust中的rand库有什么问题?

rand库的复杂依赖和安全性问题引发了开发者的关注。

生成随机数的依赖关系有多复杂?

当前rand库的依赖树变得非常庞大,包含多个层级的依赖。

rand库的编译时间是多少?

在高端M1 Max上,rand库的编译时间为4.3秒。

是否有更轻量的随机数生成库?

有一个名为fastrand的库,它没有依赖关系,可以从标准库获取种子。

rand库的代码量有多少?

去除测试后,vendored的代码占用62MB,包含209,150行代码。

rand库的依赖树在过去一年中有什么变化?

rand库的依赖树在过去九个月中变得更加庞大。

➡️

继续阅读