Rust 1.53.0 发布_代码虚拟化保护技术领军者
资讯中心 > 行业资讯 > Rust 1.53.0 发布
Rust 1.53.0 发布
2021 年 06 月 17 日

Rust 1.53.0 版本现已发布。此版本包含了几个新的 language features 和许多新的 library features,包括期待已久的数组 IntoIterator 的实现。

IntoIterator for arrays

这是第一个让数组实现 IntoIterator 特性的 Rust 版本,意味着你现在可以通过 value 来迭代数组了:

        
        for i in [1, 2, 3] {
            ..
        }
        

同样,你现在可以将数组传递给需要T: IntoIterator的 methods:

        
        let set = BTreeSet::from_iter([1, 2, 3]);
        
        
        for (a, b) in some_iterator.chain([1]).zip([1, 2, 3]) {
            ..
        }
        

从这个版本开始,数组在实现 IntoIterator 时有一个小小的变通,以避免破坏代码。编译器将继续把 array.into_iter() 解析为 (&array).into_iter(),就像该 trait 实现不存在一样。这只适用于 .into_iter() 方法的调用语法,并不影响任何其他语法,如 for e in [1, 2, 3], iter.zip([1, 2, 3])IntoIterator::into_iter([1, 2, 3]) ,它们都能正常编译。

官方表示,由于 .into_iter() 的这种特殊情况只是为了避免破坏现有的代码而需要的,所以其在今年晚些时候发布的新版本 Rust 2021 中将被删除。更多信息可参见版本公告。

Or patterns

Pattern syntax 已扩展为支持|嵌套在 pattern 中的任何位置。这使得你可以编写Some(1 | 2),而不是Some(1) | Some(2)


match result {
     Ok(Some(1 | 2)) => { .. }
     Err(MyError { kind: FileNotFound | PermissionDenied, .. }) => { .. }
     _ => { .. }
}

Unicode 标识符

标识符现在可以包含 non-ascii 字符。UAX #31 中定义的 Unicode 中的所有有效标识符字符。这包括来自许多不同脚本和语言的字符,但不包括表情符号。

编译器会对涉及不同脚本的潜在混淆情况提出警告。例如,使用看起来非常相似的标识符将导致一个警告。


warning: identifier pair considered confusable between `s` and `s`

在 Cargo 中支持 HEAD 分支名称

Cargo 不再假定 git 仓库的默认 HEAD 被命名为 master。这意味着你不再需要为来自默认分支为 main 的仓库的 git 依赖项指定branch = "main"

默认情况下增量编译保持关闭

增量编译在稳定版 Rust release channel 上已经默认关闭。该功能在 beta 版和 nightly release channels 上仍然可用。对于 1.53.0 稳定版,重新启用增量的方法与 1.52.1 相比没有变化。

有关更多信息,可参见详细的 发行说明


随着 Rust 被使用得越来越多,他的安全性也受到越来越多的关注,如何对 Rust 程序进行加密保护,从而防止软件被逆向分析、破解成为了一个重要的问题。

麻婆安全作为走在加密保护技术最前沿的高新技术企业,我们持续的跟进了 Rust 的发展,并开展了一系列的深入研究,目前基于代码虚拟化保护技术的 MapoEngine 已经全面支持对 Rust 程序进行加密,并且能全自动的识别出 Rust 的库函数,只需要一键勾选即可进行加密保护,极大防止了 Rust 软件被逆向分析、破解的可能,保护了企业的合法权益不被侵害。

(MapoEngine 对 Rust 程序的函数识别及加密)

MapoEngine 温馨提示:Rust 编译的程序默认为 Debug 版,无优化且带有调试信息,Debug 版程序更容易被逆向分析,为了程序安全,在发布程序时请使用 Release 进行编译。

在线QQ (2807483369)

在线时间(10:30-00:30)

点击这里给我发消息