您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > Rust

Rust 最受欢迎的这些库

时间:2024-02-19 11:14:20  来源:微信公众号  作者:码农渔夫

今天分享主题是,关于一些值得注意的 Rust 库,这些库可以根据它们的功能和在编码中的受欢迎程度进行选择。

什么是 Rust 库?

在 Rust 中,常被称为 “crate” 的库,是一个打包的单元,可以包含一个或多个模块,提供了一组相关的功能,如脚本和模块,让程序员能够避免重复实现。有两种主要类型的 crate,二进制可执行文件(Binary crate)和库(Library crate)。

如何使用 Rust 库?

使用 Rust 库参考以下步骤。

(1)选择库,确定你想要使用的库,可以到 crates.io 上搜索 Rust 库,里面非常丰富的。

(2)添加依赖 `Cargo.toml

确定好 create 后,通过在 Cargo.toml 文件的 dependencies 部分中包含它来将其添加到你的项目中,也可以通过命令来添加,如 cargo add serde --features derive

(3)编译依赖

当你运行cargo build 或 cargo run时,Rust 的包管理器 Cargo 将从 crates.io 中获取 crate 及其依赖项,并将它们编译为项目的一部分。

(4)在代码中使用库

添加依赖项后,就可以通过使用关键字将其纳入范围来在 Rust 代码中使用该库use,如下:

use rand::Rng;

fn mAIn() {
    let random_number = rand::thread_rng().gen_range(1..=100);

    println!("随机数: {}", random_number);
}

(5)更新库

通过更新库cargo update,然后 Cargo 将解析最新的兼容版本并Cargo.lock相应地更新文件的。

很受欢迎的 Rust 库

  • Serde:它是数据序列化和反序列化的包,非常受欢迎,下载量已经超过 2.16 亿次,有 270 多个版本。而且支持很多的数据格式包括 JSON、YAML、TOML、Pickle、BSON 等等。
  • Lazy_static :用于惰性静态数据初始化的包,在 Rust 中的静态变量通常在编译时初始化,但在某些情况下您可能希望在运行时初始化它们。
  • Thiserror:是 Rust 中的一个实用库,帮你简化了创建自定义错误类型的过程。可以用 #[error(...)] 宏定义错误的显示方式,并自动获得标准库的 Error 特性。
  • Itertools:是一个 Rust 的包,提供了额外的迭代器特征、函数和适配器,扩展了 Rust 标准迭代器的功能。
  • Anyhow:是一个简化 Rust 错误处理的包。与 dyn Error 相比,它不需要装箱,避免了额外的内存开销,主打就是一种轻量且方便处理错误的方式。

音频和声音

  • Hound:它是一个基于 Rust 的库,用于以 WAV 音频格式进行编码和解码,通常用于原始、未压缩的音频。它的开发主要是为了测试 Claxon,另一个用于 FLAC 解码的 Rust 库。Hound 在 Apache 2.0 许可证下运行,可用于开源和闭源项目,无论是否商业。
  • CPAL(跨平台音频库)是一个用纯 Rust 编写的低级音频输入和输出库。主要功能包括枚举音频主机、识别可用音频设备、确定默认输入/输出设备以及管理 PCM 流。
  • Symphonia:是一个基于 Rust 的多媒体库,专注于音频解复用、标签读取和解码。它支持流行的音频编解码器和媒体容器,提供高效的音频数据操作系统。

此外,Symphonia 注重 100% Rust 安全性和速度,同时具有最小的依赖性,保持高性能。

其他

  • Chrono:是 Rust 的一个日期和时间库。
  • Time:是 Rust 的日期和时间库。
  • Ring:是一个使用 Rust、C 和汇编语言编写的加密库,旨在促进用户友好和安全的操作。
  • Rust bio:该库为生物信息学提供算法和数据结构解决方案,科学领域使用广泛。
  • geo:这个包每月的下载量超过 12 万次,提供点、线串和多边形等地理空间类型,并包括各种操作:面积计算、距离测量和仿射变换,搞科学的应该很方便。

有兴趣,可以使用 Rust 的性能优势来完成各个领域的任务,可以从金融科技和生物医学到机器学习和商业智能。在今天认为 Rust 广泛应用于容错软件,特别是生产就绪系统和性能关键组件,未来可期!



Tags:Rust   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
在Rust中使用Serde的详细指南
在处理HTTP请求时,我们总是需要在一种数据结构(可以是enum、struct等)和一种可以存储或传输并稍后重建的格式(例如JSON)之间来回转换。Serde是一个库(crate),用于高效、通用地...【详细内容】
2024-03-26  Search: Rust  点击:(13)  评论:(0)  加入收藏
Rust 写脚手架,Clap你应该知道的二三事
有感而发最近,在和前端小伙伴聊天发现,在2024年,她们都有打算入局Rust学习的行列。毕竟前端现在太卷了,框架算是走到「穷途末路」了,无非就是在原有基础上修修补补。所有他们想在...【详细内容】
2024-03-11  Search: Rust  点击:(20)  评论:(0)  加入收藏
前端开始“锈化”?Vue团队开源JS打包工具:基于Rust、速度极快、尤雨溪主导
Vue 团队已正式开源Rolldown —— 基于 Rust 的 JavaScrip 打包工具。Rolldown 是使用 Rust 开发的 Rollup 替代品,它提供与 Rollup 兼容的应用程序接口和插件接口...【详细内容】
2024-03-09  Search: Rust  点击:(11)  评论:(0)  加入收藏
Rust中的数据可视化指南
可视化是数据分析和解释的一个关键方面。虽然Rust主要以其性能和安全特性而闻名,但它也为数据可视化提供了强大的工具。在这个全面的指南中,我们将深入研究Rust中的数据可视化...【详细内容】
2024-03-07  Search: Rust  点击:(29)  评论:(0)  加入收藏
如何在Rust中操作JSON,你学会了吗?
sonic-rs ​还具有一些额外的方法来进行惰性评估和提高速度。例如,如果我们想要一个 JSON​ 字符串文字,我们可以在反序列化时使用 LazyValue​ 类型将其转换为一个仍然带有斜...【详细内容】
2024-02-27  Search: Rust  点击:(47)  评论:(0)  加入收藏
记一次Rust内存泄漏排查之旅
在某次持续压测过程中,我们发现 GreptimeDB 的 Frontend 节点内存即使在请求量平稳的阶段也在持续上涨,直至被 OOM kill。我们判断 Frontend 应该是有内存泄漏了,于是开启了排...【详细内容】
2024-02-27  Search: Rust  点击:(12)  评论:(0)  加入收藏
Rust 最受欢迎的这些库
今天分享主题是,关于一些值得注意的 Rust 库,这些库可以根据它们的功能和在编码中的受欢迎程度进行选择。什么是 Rust 库?在 Rust 中,常被称为 “crate” 的库,是一个打包的单元...【详细内容】
2024-02-19  Search: Rust  点击:(50)  评论:(0)  加入收藏
异步Rust:构建实时消息代理服务器
在本文中,我们将深入研究使用Rust构建实时消息代理服务器,展示其强大的并发特性。我们将使用Warp作为web服务器,并使用Tokio来管理异步任务。此外,我们将创建一个WebSocket客户...【详细内容】
2024-02-01  Search: Rust  点击:(57)  评论:(0)  加入收藏
在 Rust 编程中使用泛型
本文的内容将涉及泛型定义函数、结构体、枚举和方法, 还将讨论泛型如何影响代码性能。1.摘要Rust中的泛型可以让我们为像函数签名或结构体这样的项创建定义, 这样它们就可以...【详细内容】
2024-01-09  Search: Rust  点击:(89)  评论:(0)  加入收藏
什么是Rust语言 ,特点是什么,跟其它语言对比有什么优势
什么是RustRust是一种系统编程语言,旨在提供高性能和安全性。它是由Mozilla和其开发社区创建的开源语言,设计目标是在C++的应用场景中提供一种现代、可靠和高效的选择。Rust的...【详细内容】
2024-01-09  Search: Rust  点击:(203)  评论:(0)  加入收藏
▌简易百科推荐
在Rust中使用Serde的详细指南
在处理HTTP请求时,我们总是需要在一种数据结构(可以是enum、struct等)和一种可以存储或传输并稍后重建的格式(例如JSON)之间来回转换。Serde是一个库(crate),用于高效、通用地...【详细内容】
2024-03-26  coding到灯火阑珊  微信公众号  Tags:Rust   点击:(13)  评论:(0)  加入收藏
Rust 写脚手架,Clap你应该知道的二三事
有感而发最近,在和前端小伙伴聊天发现,在2024年,她们都有打算入局Rust学习的行列。毕竟前端现在太卷了,框架算是走到「穷途末路」了,无非就是在原有基础上修修补补。所有他们想在...【详细内容】
2024-03-11  前端柒八九  微信公众号  Tags:Rust   点击:(20)  评论:(0)  加入收藏
Rust中的数据可视化指南
可视化是数据分析和解释的一个关键方面。虽然Rust主要以其性能和安全特性而闻名,但它也为数据可视化提供了强大的工具。在这个全面的指南中,我们将深入研究Rust中的数据可视化...【详细内容】
2024-03-07  coding到灯火阑珊  微信公众号  Tags:Rust   点击:(29)  评论:(0)  加入收藏
如何在Rust中操作JSON,你学会了吗?
sonic-rs ​还具有一些额外的方法来进行惰性评估和提高速度。例如,如果我们想要一个 JSON​ 字符串文字,我们可以在反序列化时使用 LazyValue​ 类型将其转换为一个仍然带有斜...【详细内容】
2024-02-27  前端柒八九  微信公众号  Tags:Rust   点击:(47)  评论:(0)  加入收藏
记一次Rust内存泄漏排查之旅
在某次持续压测过程中,我们发现 GreptimeDB 的 Frontend 节点内存即使在请求量平稳的阶段也在持续上涨,直至被 OOM kill。我们判断 Frontend 应该是有内存泄漏了,于是开启了排...【详细内容】
2024-02-27  OSC开源社区    Tags:Rust   点击:(12)  评论:(0)  加入收藏
Rust 最受欢迎的这些库
今天分享主题是,关于一些值得注意的 Rust 库,这些库可以根据它们的功能和在编码中的受欢迎程度进行选择。什么是 Rust 库?在 Rust 中,常被称为 “crate” 的库,是一个打包的单元...【详细内容】
2024-02-19  码农渔夫  微信公众号  Tags:Rust   点击:(50)  评论:(0)  加入收藏
异步Rust:构建实时消息代理服务器
在本文中,我们将深入研究使用Rust构建实时消息代理服务器,展示其强大的并发特性。我们将使用Warp作为web服务器,并使用Tokio来管理异步任务。此外,我们将创建一个WebSocket客户...【详细内容】
2024-02-01      Tags:Rust   点击:(57)  评论:(0)  加入收藏
在 Rust 编程中使用泛型
本文的内容将涉及泛型定义函数、结构体、枚举和方法, 还将讨论泛型如何影响代码性能。1.摘要Rust中的泛型可以让我们为像函数签名或结构体这样的项创建定义, 这样它们就可以...【详细内容】
2024-01-09  二进制空间安全  微信公众号  Tags:Rust   点击:(89)  评论:(0)  加入收藏
什么是Rust语言 ,特点是什么,跟其它语言对比有什么优势
什么是RustRust是一种系统编程语言,旨在提供高性能和安全性。它是由Mozilla和其开发社区创建的开源语言,设计目标是在C++的应用场景中提供一种现代、可靠和高效的选择。Rust的...【详细内容】
2024-01-09    简易百科  Tags:Rust语言   点击:(203)  评论:(0)  加入收藏
在 Rust 编程中使用多线程
编程语言有一些不同的方法来实现线程,而且很多操作系统提供了创建新线程的 API。Rust 标准库使用 1:1 线程实现,这代表程序的每一个语言级线程使用一个系统线程。1. Rust线程...【详细内容】
2024-01-07  二进制空间安全  微信公众号  Tags:Rust 编程   点击:(77)  评论:(0)  加入收藏
站内最新
站内热门
站内头条