本文主要是介绍【Rust日报】2020-10-26 Box 即将支持自定义的 allocators,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Box 即将支持自定义的 allocators
下面的 pull request
合并之后, Box 将会支持自定义的 allocators.
Box 的定义将会从 Box<T>
变成 Box<T, A = Global>
.
https://github.com/rust-lang/rust/pull/77187
Rust 的 Hyper 会让 Curl 变的更安全
curl
是使用 C
语言编写的流行工具, 已安装在全世界 600 多万的设备上. 前段时间, curl
开始尝试增加一个新的 backend, 该 backend 是 Rust
编写的 HTTP 库, Hyper
. 但是这并不意味着 curl
会用 Rust
重写. 除此之外, ISRG 的工程师也在尝试使用 Rusttls
作为一个 TLS 的 backend.
https://www.infoq.com/news/2020/10/memory-safe-curl-rust/
使用 OIBIT 实现 specialization 功能
名词解释:
OIBIT
, 全称opt-in built-in traits
, 他的另外一个名字我们比较熟悉auto traits
.specialization
, 是 nightly Rust 提供的一个 feature. 允许我们在 traits 实现有重叠的时候标记一个default
的实现.
阅读完本文,你将了解到:
auto traits
的特性.specialization
特性是什么, 解决什么问题.如何使用
auto traits
来模拟实现specialization
这个特性.
https://pwychowaniec.com/en/posts/imitating-specialization-with-oibits/
move/copy/drop 语义和 zeroing data 的一个小陷阱.
Rust 的 value 被 drop
之后,默认并不会变成零值的. 但是,在有一些高度安全的设备和行业中, 我们是不希望把一些敏感的信息在内存中停留时间超过他本该停留的时间, 由于上面特性, 会导致即使变量 drop
了, 数据仍然是在内存中的, 直到该内存重新被覆盖.
crate zeroize
可以帮助我们来做到安全的设置数据为零值, 而且可以防止编译优化.
本文主要介绍了 stack
变量和 heap
变量在使用 zeorize
的时候一个小陷阱.
https://benma.github.io/2020/10/16/rust-zeroize-move.html
Ungrammar : 描述 concrete syntax tree 的一种新形式
Ungrammer 例子如下
Module =Attr* Visibility?'mod' Name(ItemList | ';')
他和 EBNF 很像, 区别在于, Ungrammer 描述的是 concrete syntax tree, 是一系列数据或者一系列 trees.
https://rust-analyzer.github.io/blog/2020/10/24/introducing-ungrammar.html
--
From 日报小组 BobQin,FBI小白
社区学习交流平台订阅:
Rustcc论坛: 支持rss
微信公众号:Rust语言中文社区
这篇关于【Rust日报】2020-10-26 Box 即将支持自定义的 allocators的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!