生产环境选哪个 Rust 序列化库?
序列化一直是 Rust 的强项,序列化库既成熟又快速。
特别是 Serde 在 Rust 1.0.0 发布之前就已经可用,其背后的理念是使用 trait
解耦对象,并从序列化格式中进行序列化/反序列化,这是一个非常强大的思想。格式编写者只需实现 Serde 的 trait
即可,而用户通过#[derive(Serialize,Deserialize)]
对其对象进行序列化,而无需考虑格式。
当然有各种特定格式的库,这篇博客文章中,将在考虑 API 可用性和性能的情况下比较一些库。
博客文章链接,https://blog.logrocket.com/rust-serialization-whats-ready-for-production-today/
embedded-time 发布 v0.10
embedded-time,提供了一个完整的持续时间(Duration)和速率(Rate)类型库,以及硬件计时器/时钟的时钟(Clock)抽象以及嵌入式系统中的即时(Instant)类型。此外还提供了软件计时器的实现。
use embedded_time::{duration::*, rate::*};
let micros = 200_000_u32.microseconds(); // 200_000 ╬╝s
let millis: Milliseconds = micros.into(); // 200 ms
let frequency: Result<Hertz,_> = millis.to_rate(); // 5 Hz
assert_eq!(frequency, Ok(5_u32.Hz()));
crate 链接,https://crates.io/crates/embedded-time
EBU R128 库 ebur128
ebur128 库,是EBU R128 标准的纯 Rust 实现。其是将 C 语言开发的 libebur128 库代码移植到了 Rust,在保持 API 和性能不变的同时,提供完全相同的结果。
EBU R128,是欧洲广播联盟(European Broadcasting Union)出的一个关于响度(Loudness)控制的建议书(Recommendation),是用来通知广播公司如何分析和标准化音频,以使每段音频听起来与人耳的音量大致相同。
crate 链接,https://crates.io/crates/ebur128
Github 链接,https://github.com/sdroege/ebur128
Rust 中逼真的流体模拟
用户可以使用这些引擎模拟和渲染用 YAML 语言描述的场景。
Jan Bender 和 Dan Koschier 在该领域的论文《用于基于流体和固体的物理模拟的平滑粒子流体动力学技术》(Smoothed Particle Hydrodynamics Techniques for the Physics Based Simulation of Fluids and Solids),是对流体模拟的出色介绍。
Github 链接,https://github.com/AudranDoublet/opr
From 日报小组 洋芋
社区学习交流平台订阅:
评论区
写评论还没有评论