< 返回版块

洋芋 发表于 2020-08-29 20:31

Tags:rust, 日报

生产环境选哪个 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 日报小组 洋芋

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页