主要观点:
- 近期写了关于 Rust 中依赖的文章,Rust 社区内外反馈不同,社区在 Reddit 和 Lobsters 上不屑一顾,而一些人表示支持。
- 以 rand crate 为例,其值与依赖比不合理,使用广泛但依赖较多,如升级到 0.9 版本后依赖树变大。
- 探讨了 rand crate 的各种依赖,包括平台依赖(如 Linux、Mac 用 libc,Windows 用 Microsoft crate 等)、依赖链(涉及多个维护者群体)、代码大小(约 62MB,含多个 crate )、编译时间(在 M1 Max 上 4.3 秒,依赖间相互阻塞)。
- Rust 社区对 rand 的现状不太关心,认为使用 less unsafe 就足够,也有人认为这反映 Rust 标准库不够大,应将一些功能纳入标准库,或让外部 crate 更注重依赖和可审计性。
- 后续 rand 有改进计划,如在核心库中移除 zerocopy ,用 stripped down 版本的 chacha20 替换 ppv-lite86 ,在 Rust 1.71 及以后编译时 windows-target 可变为 no-op 。
关键信息:
- 关于 Rust 依赖的文章链接
- rand crate 相关信息,如不同版本的变化、依赖情况等
- 各依赖的维护者群体
- 代码大小、编译时间等具体数据
- rand 的改进计划
重要细节:
- 0.9 版本的 rand crate 打破了与 0.8 版本的向后兼容性。
- 不同平台获取系统 RNG 的方式及相关 crate 。
- 审计依赖链时涉及的 8 个维护者群体。
- 各 crate 的代码行数,如 ppv-lite86 3587 行、proc-macro2 等组合 49114 行等。
- 编译时间增长及依赖阻塞情况。
- rand 在 Reddit 上的主要反馈及后续改进动作等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。