Rust 最受欢迎的这些库

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

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,如下:
【Rust 最受欢迎的这些库】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 广泛应用于容错软件,特别是生产就绪系统和性能关键组件,未来可期!


推荐阅读