💡
原文英文,约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库的依赖树在过去九个月中变得更加庞大。
➡️