五个很棒的(但鲜为人知的)Rust项目

开发 项目管理
TLS协议无处不在!无论你是在网页浏览器、电子邮件客户端还是移动应用程序中阅读,至少有六个TLS连接为你提供这些内容。最常用的库(OpenSSL和BoringSSL)是用C编写的,这导致了许多与内存相关的问题。不幸的是,它也是一个相当复杂的协议,因此构建一个新的库需要大量的努力。

虽然你可能已经听说过像Tauri, Deno或Helix这样的优秀项目,但它们都是可以直接使用的“成品”,所以它们很容易获得认可。

随着Rust成为构建底层基础设施事实上的语言,把不太知名的项目放在聚光灯下是很重要的,这些项目将为我们的数字世界提供快速、安全和可靠的构建块。

Neon

Neon通过让PostgreSQL数据平台(是的,PostgreSQL不仅仅是一个数据库)使用兼容s3的存储作为后端,重新定义了数据库世界。

虽然它使Postgres的单片架构变得复杂,但它也解决了许多问题:read-replicas现在使用单一的数据源而不是容易出错的复制,我们不再需要使用缓慢而昂贵的网络存储(如AWS的EBS)来获得高可用性的数据库,数据库的升级/降级现在只是生成一个新的容器/microVM的问题,不需要做任何复制。

Datafusion

在过去的数据系统中,我们看到了不同层的分离:查询引擎、内存表示和存储。Datafusion是一个新的高性能和可扩展的查询引擎,它允许数据工程师使用Rust/Python的高级接口直接查询数据源,或者使用它作为查询层来构建数据系统,以构建和优化查询任务。它已经支持了许多令人印象深刻的项目,如InfluxDB、GreptimeDB和paradeDB。

图片图片

例如,你可以从任何对象存储/ HTTP服务器中查询CSV或parquet文件,只需几行代码:

use datafusion::prelude::*;
use object_store::http::HttpBuilder;
use std::sync::Arc;
use url::Url;

#[tokio::main]
async fn main() -> Result<()> {
    let ctx = SessionContext::new();

    let base_url = Url::parse("https://github.com").unwrap();
    let http_store = HttpBuilder::new()
        .with_url(base_url.clone())
        .build()
        .unwrap();
    ctx.register_object_store(&base_url, Arc::new(http_store));

    ctx.register_csv(
        "aggregate_test_100",
        "https://github.com/apache/arrow-testing/raw/master/data/csv/aggregate_test_100.csv",
        CsvReadOptions::new(),
    )
    .await?;

    let df = ctx
        .sql("SELECT c1,c2,c3 FROM aggregate_test_100 LIMIT 5")
        .await?;

    df.show().await?;

    Ok(())
}

PGRX

正如我们在Neon中看到的,PostgresSQL不再是一个简单的数据库了。它已经成为一个“数据内核”,管理如何存储和查询数据,就像Linux是一个“计算内核”,管理进程和资源一样。因此,开发人员不满足于用c语言构建扩展是很自然的。有了pgrx,问题就解决了,我们现在可以用Rust构建快速、安全、可靠的Postgres扩展。

AWS-LC-RS

根据一项加密库漏洞的实证研究,加密库中37.2%的漏洞是内存安全问题,而只有27.2%是加密问题。现在是时候不再把C作为实现加密库的实际语言了。

由于Rust的高级特性与底层控制,没有垃圾收集器,可移植性和易于嵌入,Rust是我们取代当今最常用的加密库的最佳选择:OpenSSL, BoringSSL和libsodium,它们都是用C编写的。

AWS-LC-RS是AWS的libcrypto的包装器,libcrypto是由AWS密码学团队为AWS及其客户维护的通用加密库。它支持大多数平台(Linux、Windows、macOS、Android)和最常见的体系结构(x86-64、aarch64)。

AWS-LC-RS非常快,拥有你需要的所有原语,有一个很好的API,并为最苛刻的行业提供fips验证模式。

Rustls

TLS协议无处不在!无论你是在网页浏览器、电子邮件客户端还是移动应用程序中阅读,至少有六个TLS连接为你提供这些内容。最常用的库(OpenSSL和BoringSSL)是用C编写的,这导致了许多与内存相关的问题。不幸的是,它也是一个相当复杂的协议,因此构建一个新的库需要大量的努力。

Rustls是可用于生产的TLS在Rust中的实现,比它的C对应物更快更安全。它的强大之处在于它不局限于Rust,它也可以在任何带有rustls-ffi的语言中使用,所以可以期待其他语言(如C、C++、Python和Ruby)的项目都能采用它。

责任编辑:武晓燕 来源: coding到灯火阑珊
相关推荐

2022-10-10 12:53:33

Python模块

2022-08-23 09:01:02

HTMLWeb

2024-05-07 00:00:00

工具类开发者功能

2022-08-11 09:00:31

Audio APIWeb

2024-01-15 18:02:09

docker系统文件格式

2022-06-23 10:17:00

Git技术Linux

2023-05-29 19:39:40

Bash脚本

2021-07-07 10:59:48

python代码编程语言

2017-11-08 14:55:16

Linux命令sudo

2023-04-23 15:11:26

2009-09-14 09:45:20

Chrome谷歌操作系统

2019-10-08 16:24:33

Chrome浏览器

2014-07-29 14:25:43

Unix命令

2010-01-07 10:05:51

IT顾问特质

2024-03-04 16:32:02

JavaScript运算符

2019-12-12 20:49:05

JavaScript语言运算符

2013-07-15 09:14:00

2014-04-22 16:38:12

GitHubGitHub 使用技巧

2011-05-03 13:13:52

编程PHPJava

2024-11-05 08:00:00

数据转换数据预处理Python
点赞
收藏

51CTO技术栈公众号