文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

你应该尝试的12个杀手级Rust库

2024-12-02 21:05

关注

我还计划在未来的文章中讨论一些话题,比如在Rust与Go之间做决定,或者决定是否为你的团队或项目采用Rust,以及在你决定接受它之后应该期待什么。

[[426531]]

Clap

用Rust构建CLI工具是天作之合--看看ripgrep和Rust自己的Cargo。超快的启动时间,较小的二进制大小,类型安全的代码,运行时安全的二进制,交叉编译到你可能想要的几乎所有架构。

要开始构建CLI工具,clap是一个非常棒的CLI库,它是如此之好,我不认为有任何理由像其他语言中常见的那样有一打替代品。事实上,如果你想尝试Rust,我建议先看看rustup,然后试试这个库,看看它能给你带来什么。

Serde

和clap一样,serde是一个功能丰富、性能卓越的通用序列化库。事实上,想想Java和.NET,我不记得有哪个序列化库从各方面都做得这么好--人体工程学和性能。

不要自己尝试从/向文件读/写,相反--先写好你的数据类型,让serde做所有的工作。作为奖励,你可以在一切完成后混合和匹配数据格式(YAML、JSON)。

Reqwest

Reqwest遵循HTTP客户端库的黄金标准,如request、superagent和requests,并将其完美地应用于Rust。它是我的HTTP客户端的首选库,功能丰富且完整。

Rayon

Rayon是一个 "Rust的数据并行库",简单地说,给它数据,它就知道如何把它分割成独立的块,让你所有的CPU核心工作。

或者更简单地说,给它一个列表,它就会在上面并行化映射,还有其他功能。这对CLI工具非常有用;不是所有的语言都能在命令行上实现并行化。

Slog

slog是一个非常完整的Rust日志套件。它是一个核心,后面有很多插件,比如终端输出的term,JSON输出的json等等。

你应该知道,还有log,它的目标是成为标准Rust的一部分,是一个更简单的选择。出于这个原因,我个人已经从slog转到了log。

itertools

在你的列表上多加几个运算符也无妨,尤其是许多或大多数运算符是零成本的。有了itertools,你就可以得到这些。如果你是一个像lodash这样的库的粉丝,那就太好了。

Hyper

hyper是一个用Rust编写的快速HTTP实现,也是为Rust编写的(相对于那些用C编写的,涵盖了动态语言的性能)。你会发现hyper几乎出现在你使用的所有高级库中,如果你直接使用它,感觉有点像Netty或Finagle。我发现自己既把hyper当作一个HTTP工具箱(使用其中的部分),也把它当作一个整体,在它上面建立一个服务器。

猜猜看,什么东西不使用Hyper?是Actix。Actix试图变得更简单,从我的经验来看--它能做到。我经常使用Actix而不是Hyper,因为它更高级,对于服务的目的来说,更成熟。今天,我默认直接使用Actix而不是Hyper,除非我需要建立一些低级别的东西,或者有一个直接需要Hyper的库(有很多)。

PyO3

PyO3是在Python中构建Rust库(或者说是Rust中的Python库? )的比较流行的库之一。如果你想看看这种混合的结果,这里有hyperjson--一个由Rust的serde支持的Python的JSON库。

依靠Rust的安全性和Serde的性能,你几乎不费吹灰之力就得到了一个安全的、最快的Python JSON库之一。

想在3个步骤中改进Python吗?

proptest

proptest是Rust的一个基于属性的测试库。自从我在短暂的Haskell工作中使用QuickCheck后,我就在我使用的每一种语言中寻找这类库--这些库提出它们会通过智能地思考一组输入数据来自动为你找到一个失败的测试案例,使你的代码陷入困境。

libloading

对于那些想把Go或其他c-lib库混入Rust前端的人来说,libloading使其变得简单。

在过去的一年里,我用Rust构建了大中型项目,我接受Rust生态系统的某些部分还没有准备好,并且不吝于用其他语言(主要是Go)来构建这些项目--只是用libloading把所有东西都挂回Rust中。

性能

最后你应该知道的是,干净、简单的Rust在默认情况下是非常快的。这里有一个关于正确时间的谈话。

还有几个我几乎一直喜欢使用的库,它们在Rust已经提供的默认情况下给你带来了不错的性能提升。

摘要

Rust,用一个词来形容就是--强大。

但还有很多话要说。例如--与其他编程语言相比,Rust也是极其年轻的。

 

来源:今日头条内容投诉

免责声明:

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

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

软考中级精品资料免费领

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

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

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

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

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

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

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