【Rust日報】2020-08-29 生產環境 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 日報小組 洋芋
社區學習交流平臺訂閱:
  • Rustcc論壇: 支持rss
  • 微信公衆號:Rust語言中文社區

本文分享自微信公衆號 - Rust語言中文社區(rust-china)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。git

相關文章
相關標籤/搜索