【Rust日报】2020-10-12 蜜月期之后的 Rust

2020年10月12日 291点热度 0人点赞 0条评论

蜜月期之后的 Rust

使用每一种语言就如同每段感情一样, 都有蜜月期. 当蜜月期过后, Rust 是否还是你的最爱呢?
作者两年前就写过 <<爱上Rust>> 的相关博客. 两年过去了, 如同作者说:
我仍然坚持我之前所说的一切.
他们仍然结着婚,而且很幸福.
除此之外,作者还列举了很多大大小小的细节,来说明为什么他仍然最爱 Rust:
  • no_std 可以选择性关闭标准库.
  • {:#x?} 更加 pretty 的打印变量.
  • 数字字面量 例如 0b0000_1011_1000_0000
  • DWARF的支持 让 debug 没那么痛苦.
  • gimli 和 goblin 这是两个 crates, gimli 是用来消费 DWARF数据,从而可以制作调试工具. 而 globlin 可以处理 ELF.
  • data-bearing enums 用过 Rust 的 enum 都说好.
  • paste crate paste 可以像 C 的宏那样,所以粘贴多个标识符组成一个标识符.
  • unsafe 虽然 Rust 最大特性之一是 safe,但是 unsafe 的存在也给了我们更多选择.
  • 多平台支持
  • anyhow! + RUST_BACKTRACE 错误处理体验非常棒.
  • asm! 提供了非常方便的宏语法,让你写汇编不再那么痛苦.
  • string的连续性
  • --pretty=expanded 和 cargo expand 展开宏
原文连接: http://dtrace.org/blogs/bmc/2020/10/11/rust-after-the-honeymoon/

Rust 中的可选参数

在 Rust 中, 可选参数并不在语法层面上被支持.
这篇文章列出了下面多种方式来支持可选参数, 并且附上了优缺点:
  • Option<T>
  • Into<Option<T>>
  • 自定义的 struct.
  • 使用builder模式.
  • Endpoint-oriented 接口
  • Hybrid derive pattern
  • Grouping up endpoints
  • Macros
原文链接: https://vidify.org/blog/rust-parameters/

Gameboy 模拟器

这是一个 Rust + WASM 编写的非常酷的 Gameboy 模拟器, 运行在浏览器中.

图片

github地址: https://github.com/BlueBlazin/gbemu

riscv-rust: Rust + WASM 编写的 RISC-V 的处理器模拟器

riscv-rust 是一个 RISC-V 处理器和周边设备的模拟器. 使用 Rust 编写并且编译成 WebAssembly.
你可以在你的浏览器中运行 Linux 或者 xv6.
github地址: https://github.com/takahirox/riscv-rust
online demo: https://takahirox.github.io/riscv-rust/wasm/web/index.html

puffin: 非常棒的 Rust profile 工具

Puffin 是一款 rust 性能剖析器, 用法非常简单, 如下:
fn my_function() {
puffin::profile_function!():
...
if ... {
puffin::profile_scope_data!("load_image", image_name):
...
}
}

如果想使用 UI,还可以使用插件 crate puffin-imgui 来展示火焰图等,他的样子如下:

图片

github地址: https://github.com/EmbarkStudios/puffin
--
From 日报小组 BobQin,FBI小白
社区学习交流平台订阅:
  • Rustcc论坛: 支持rss
  • 微信公众号:Rust语言中文社区

41470【Rust日报】2020-10-12 蜜月期之后的 Rust

这个人很懒,什么都没留下

文章评论