Cargo现已支持原生cargo add
命令
Cargo now has native support for the cargo add
command (from the cargo-edit crate)!
cargo
现已支持原生cargo add
命令,避免了从 crates.io 手动查找信息的需要,然后将其编辑为Cargo.toml
。以下是使用原生cargo add
功能的一些例子:
cargo add regex
cargo add regex serde
cargo add regex@1
cargo add regex@~1.0
cargo add --path ../dependency
更多细节可以参见这篇书写规范的PR;
在官方原生支持cargo add
命令之前,社区实现版本的cargo-edit的cargo add
子命令提供类似的功能,cargo-edit
提供的其他子命令包括:
cargo add
cargo rm
cargo upgrade
cargo set-version
期待cargo能够早日实现类似于cargo-edit
的其他原生子命令!
Rust异步框架的性能评估
A Performance Evaluation on Rust Asynchronous Frameworks
Zenoh (发音:/zeno/)是一个基于async_std
的异步零开销发布/订阅、存储/查询和计算框架,Zenoh是用Rust编写的,它利用异步特性来实现高性能和可扩展性;
在这篇博客中,Zenoh官方评估了三个异步框架(async_std/Tokio/smol)在异步网络上的性能。对每一种方法进行评估,并与Rust标准库提供的等效同步原语提供的基线性能进行比较。
评估显示,async_std
和smol
非常接近标准库,并且在某些工作负载上优于标准库。另一方面,Tokio
似乎很快就达到了它的极限,即100 msg/s时达到18µs,并且TCP和UDP之间没有差异。此外,Tokio
似乎受到CPU限制(Rust)异步任务的不利影响。
基于这些结果,Zenoh
认为他们别无选择,只能继续使用async_std
。也就是说,了解Tokio
为什么会在比较中暴露这种行为,并改善其原始性能以缩小与async_std
的差距,这将是一件有趣的事。目前,Tokio
在本地主机上增加了8µs延迟,在网络上增加了10µs延迟。
作者坦言,理想情况下,他们希望看到一个异步框架成为“标准”,但要做到这一点,不能忽视原始性能。他们也期待着与社区其他人接触并共同努力,帮助实现这一目标。
systeroid: 用Rust重写sysctl(8)
Rewriting sysctl(8) in Rust: systeroid
sysctl
命令用于运行时配置内核参数,这些参数位于/proc/sys目录下。
systeroid
是“打了激素的sysctl
”。与sysctl
类似,它是使用procfs实现的,主要目标是管理内核参数。它有一系列特性,可以简化读取和修改值的过程,甚至可以从正式的Linux内核文档中检索有关这些值的信息。它还有一个基于文本的用户界面,用于可视化内核参数的状态,并以交互方式执行这些管理操作。
From 日报小组 odd-cat