< 返回版块

EAHITechnology 发表于 2021-06-18 17:35

Tags:rust, 日报

rust 1.53 发布!!!

Rust 团队2021-06-17宣布 Rust 的新版本 1.53.0发布,获取 Rust 1.53.0:

$ rustup update stable

主要更新:

  • 其中此版本完成了IntoIterator特性,我们可以按照值遍历数组:
for i in [1, 2, 3] {
    ..
}

这在以前我们只能通过引用,使用&[1, 2, 3]或[1, 2, 3].iter()来实现

  • 支持Unicode标识符
  • 支持”|“嵌套在模式中的任何位置等 主要其他修改:https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1530-2021-06-17
  • https://blog.rust-lang.org/2021/06/17/Rust-1.53.0.html

Aya 一个基于rust的ebpf库

Aya 专注于开发人员体验和可操作性。它不需要 C 工具链来构建,甚至不需要内核头文件。在发布模式下编译 crate 只需要几秒钟。⚡️

  • https://confused.ai/posts/announcing-aya

cap-std -- 一个基于功能的 Rust 标准库版本

cap-std的API不会隐式访问文件、目录、网络地址、时钟或其他外部资源,而是对显式传入的句柄进行操作。这种操作有助于处理潜在恶意内容的程序避免意外访问资源而且并且不需要传统的进程范围沙箱,因此它可以轻松嵌入到更大的应用程序中。

操作系统有资源句柄或文件描述符的概念,它们是可以在程序内部和有时在程序之间传递的值,代表对外部资源的访问途径。文件通常具有环境权限,只需提供其名称或地址即可请求任何文件或网络句柄:

   let file = File::open("/anything/you/want.txt")?;

类似这样,但是如果在open的字符串中传入的路径是../../home/me/.ssh/id_dsa.pub,那么这个函数的行为可能是破坏用户的 ssh 公钥😲,所以cap-std就是为了解决这样粗粒度的安全问题, 如果使用cap-std要打开文件,需要一个Dir,代表它所在的打开目录:

    let file = dir.open("the/thing.txt")?;

尝试访问未包含在目录中的路径:

    let hidden = dir.open("../hidden.txt")?;
    dir.symlink("/hidden.txt", "misdirection.txt")?;
    let secret = dir.open("misdirection.txt")?;

会返回PermissionDenied错误。 应用程序可以按逻辑配置自己的访问权限,而无需更改整个主机进程的行为、设置单独的主机进程或需要外部配置

  • github : https://github.com/bytecodealliance/cap-std

Rust 编写的命令行键值数据存储

作者John Idogun在DEV Community上发布了基于rust编写的命令行kv存储工具,这个例子纯粹为了学习 图片1

  • github : https://github.com/Sirneij/rust-kvstore

From 日报小组 北纬27度,侯盛鑫

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页