< 返回版块

gensmusic 发表于 2020-10-12 18:59

Tags:rust, 日报

蜜月期之后的 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 展开宏

原文连接

Rust 中的可选参数

在 Rust 中, 可选参数并不在语法层面上被支持.

这篇文章列出了下面多种方式来支持可选参数, 并且附上了优缺点:

  • Option<T>
  • Into<Option<T>>
  • 自定义的 struct.
  • 使用builder模式.
  • Endpoint-oriented 接口
  • Hybrid derive pattern
  • Grouping up endpoints
  • Macros

原文链接

Gameboy 模拟器

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

img img img img img img img img img img

github地址

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

riscv-rust 是一个 RISC-V 处理器和周边设备的模拟器. 使用 Rust 编写并且编译成 WebAssembly.

你可以在你的浏览器中运行 Linux 或者 xv6.

github地址

online demo

puffin: 非常棒的 Rust profile 工具

Puffin 是一款 rust 性能剖析器, 用法非常简单, 如下:

fn my_function() {
    puffin::profile_function!():
    ...
    if ... {
        puffin::profile_scope_data!("load_image", image_name):
        ...
    }
}

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

img

github地址

--

From 日报小组 BobQin,FBI小白

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页