性能强悍的 blake2b_simd 和 blake2s_simd 姐妹花
BLAKE 和 BLAKE2 是密码学哈希函数,来源于 Dan Bernstein 的 ChaCha。特点是在64位机上,性能比 SHA-3, SHA-2, SHA-1, 和 MD5 等都高。属于目前最高性能的哈希函数之一。而这两个库的实现,也在追求性能的极致。
以下是一些性能评测数据:
代码语言:javascript复制╭─────────────────────────┬────────────╮
│ blake2s_simd many::hash │ 2.454 GB/s │
│ blake2s_simd BLAKE2sp │ 2.421 GB/s │
│ sneves BLAKE2sp │ 2.316 GB/s │
│ blake2b_simd many::hash │ 2.223 GB/s │
│ blake2b_simd BLAKE2bp │ 2.211 GB/s │
│ sneves BLAKE2bp │ 2.150 GB/s │
│ blake2b_simd BLAKE2b │ 1.008 GB/s │
│ OpenSSL SHA-1 │ 0.971 GB/s │
│ sneves BLAKE2b │ 0.949 GB/s │
│ libsodium BLAKE2b │ 0.940 GB/s │
│ OpenSSL SHA-512 │ 0.666 GB/s │
│ blake2s_simd BLAKE2s │ 0.647 GB/s │
╰─────────────────────────┴────────────╯
与
代码语言:javascript复制╭─────────────────────┬────────────╮
│ b2sum --blake2sp │ 1.727 GB/s │
│ b2sum --blake2bp │ 1.618 GB/s │
│ b2sum --blake2b │ 0.887 GB/s │
│ coreutils sha1sum │ 0.854 GB/s │
│ coreutils b2sum │ 0.713 GB/s │
│ coreutils md5sum │ 0.632 GB/s │
│ coreutils sha512sum │ 0.620 GB/s │
│ b2sum --blake2s │ 0.603 GB/s │
╰─────────────────────┴────────────╯
评测的环境和对比请进下面的 Repo 查看。
Blake 论文 Repo
gbdt-rs - 梯度提升决策树的Rust实现
梯度提升决策树是机器学习中的算法。这个库没有使用unsafe代码。
这个库是百度 X-Lab 实验室出的。目前不清楚他们做这个库的目的。
Repo
顺便介绍一下他们的 mesalock-linux 项目。这个项目目的是要从底至上逐步打造一个完整的安全的Linux发生版 (除内核不动外,其它绝大部分使用Rust重写)
mesalock-linux
感兴趣的可以为他们贡献代码。
为什么选择Rust - 一个视频
Buoyant CTO Oliver Gould (@olix0r) 和他的一个同事,参加了 The Open Source Show,大谈为什么选择Rust。
Buoyant 就是开发 Linkerd 这个 service mesh 产品的那个公司,懂了吧。
00:51 哪种类型的程序员使用Rust? 02:29 为什么Linkerd使用Rust? 03:12 Rust的历史 04:24 Oliver使用Rust的经历
Repo
一篇好文,教你如何在编程的过程中避免克隆
作者分享了一些技巧和经验,推荐阅读。
Read More
用Rust写编译器
其实用Rust尝试和玩儿写编译器的已经很多了。这篇文章讲得很详细。作者发现用Rust写编译器很舒服。他个人编码只花了大约 60 个小时。