随着 Rust 成为构建低级基础设施的实际首选语言,我认为有必要关注一些鲜为人知的项目,我认为这些项目将为我们的数字世界提供快速、安全和可靠的构建模块,从而产生巨大的影响。
1、Neon
Neon 正在重新定义数据库世界,它让 Postgres 数据平台(是的,我就是这么称呼它的,PostgreSQL 不仅仅是一个数据库)使用与 S3 兼容的存储作为其后端。虽然它使Postgres 的单片架构变得复杂,但它也解决了许多问题:只读副本现在使用单一事实来源而不是(容易出错的)复制,我们不再需要使用缓慢而昂贵的网络存储(例如 AWS 的 EBS)来获得高可用性数据库,数据库的升级/降级现在只是生成新容器/microVM 的问题,无需进行任何复制。
2、Datafusion
虽然过去的数据系统都是整体式的,但我们看到不同层正在被拆分:查询引擎、内存表示和存储。Datafusion 是一种新的高性能可扩展查询引擎,它允许数据工程师使用高级接口直接从 Rust/Python 查询数据源,或者使用它作为查询层来构建数据系统,以构建和优化查询计划。它已经为 InfluxDB、GreptimeDB 和 paradeDB 等大量项目提供支持。
例如,您只需几行代码即可从任何对象存储/HTTP 服务器查询 CSV 或 parquet 文件:
use datafusion::error::Result; |
3、pgrx
正如我们在 Neon 中看到的那样,PostgresSQL 不再是一个简单的数据库。它已成为一个“数据内核”,管理数据的存储和查询方式,就像 Linux 是一个“计算内核”,管理进程和资源一样。因此,开发人员不满足于用 C 构建扩展是自然而然的。随着pgrx问题得到解决,我们现在可以使用 Rust 构建快速、安全且可靠的 Postgres 扩展。
我最喜欢的扩展?当然是TimescaleDBpgrx (不幸的是,它的出现时间太早,而且是用 C 语言编写的)。
4、aws-lc-rs
根据对加密库漏洞的实证研究(Jenny Blessing、Michael A. Specter、Daniel J. Weitzner - MIT) ,加密库中 37.2% 的漏洞是内存安全问题,而只有 27.2% 是加密问题。现在是时候不再使用 C 作为实现加密库的事实语言了。由于 Rust 具有高级特性和低级控制、没有垃圾收集器、可移植性和易于嵌入等特点,Rust 是我们取代当今最常用的加密库的最佳选择:OpenSSL、BoringSSL和libsodium,它们都是用 C 编写的。
aws-lc-rs是AWS libcrypto的包装器,这是 AWS 加密团队为 AWS 及其客户维护的通用加密库。它支持大多数平台(Linux、Windows、macOS、Android)和最常见的架构(x86-64、aarch64)。
它是目前我最喜欢的 Rust 加密库:它速度非常快,具有您需要的所有原语、良好的 API 并且具有适合最苛刻行业的 FIPS 验证模式。
5、rustls
TLS 协议无处不在!无论您是在 Web 浏览器、电子邮件客户端还是移动应用中阅读,至少有六个 TLS 连接可以为您提供此内容。最常用的库(OpenSSL 和 BoringSSL)是用 C 编写的,这导致了许多与内存相关的问题。不幸的是,它也是一个相当复杂的协议,因此构建新的库需要付出很多努力。
Rustls 是 Rust 中 TLS 的生产就绪实现,比 C 语言更快、更安全。它的优点在于不仅限于 Rust:它还可以在任何带有rustls-ffi 的语言中使用,因此我们可以期待其他语言(如 C、C++、Python 和 Ruby)的项目采用它。