文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-11-28 15:49

关注

随着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到灯火阑珊内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯