Rust 日报 20191015 AWS 开源项目部今天决定公开赞助 Rust 语言这个项目

AWS’ Sponsorship of the Rust Project

by David Barsky, Arun Gupta, and Jacob Peddicord | on 14 OCT 2019 |

We’re really excited to announce that AWS is sponsoring the Rust programming language! Rust is designed for writing and maintaining fast, reliable, and efficient code. It has seen considerable uptake since its first stable release four years ago, with companies like Google, Microsoft, and Mozilla all using Rust. Rust has also seen lots of growth in AWS, with services such as Lambda, EC2, and S3 all choosing to use Rust in performance-sensitive components. We’ve even open sourced the Firecracker microVM project!

Jump

RxRust v0.3更新发布

在v0.2我们实现了所有运算符和可视线程的安全性之后,RxRust现在可以通过调度程序跨线程传递任务。这样,所有用户提供的闭包都必须满足Send + Sync + 'static,甚至永远不需要使用调度程序和多线程。

现在,我们移除了bounds的SyncSend'static,并添加了新的特性IntoShared。这样可以为本地线程实现运算符,并实现IntoShared将其转换为线程安全的运算符。默认情况下,RxRust始终使用单线程版本以获得最佳性能,如果需要在线程中传递IntoShared对象,则使用RxRust 将本地对象转换为线程安全的对象。

更新前:

let res = Arc::new(Mutex(0));
let c_res = res.clone();
observable::of(100).subscribe(|v| { *res.lock().unwrap() = *v });

assert_eq!(*res.lock().unwrap(), 100);

更新后:

let mut res = 0;
observable::of!(100).subscribe(|v| { res = *v });

assert_eq!(res, 100);

重要变化 移除 RxFn 和 RxValue

  • operators: 移除 Multicast

  • observable: 移除 ObservableOnce

  • observable: observable::from_vec 和 observable::from_range 函数整合到 宏observable::from_iter! .

  • observable: observable::empty函数变为宏observable::empty! .

  • observable: observable::of 函数变为宏 observable::of! .

  • observable: observable::from_future函数变为宏 observable::from_future!

  • observable: observable::from_future_with_err 函数变为宏observable::from_future_with_err!

  • observable: observable::interval 函数变为宏observable::interval!

详细信息前往GitHub查看

Watt:由wasm支持的proc宏(概念验证),编译时间几乎为零

  • 编译速度更快。 提前将宏编译为Wasm,可以节省该宏的所有下游用户的时间,他们不必自己编译宏逻辑或其依赖项。

  • 隔离性。 Watt是100%安全的代码,具有零依赖性。在此环境中代码运行时,宏与外部世界的唯一可能的交互限于话费token和生成token。不管宏本身可能包含多少不安全代码!由于Rust编译器或标准库中存在模块错误,因此宏除了随机播放令牌外不可能做任何其他事情。

  • 确定性。 从系统构建的角度来看,由Wasm支持的宏具有以下优点:可以将其视为从输入到输出的纯粹确定性函数。隐式依赖(例如通过文件系统)是不存在的,构建系统对隐式依赖不可见或不考虑隐式依赖。

详细信息前往GitHub查看

使Tokio调度程序快10倍的方法

调度程序的作用是调度工作。一个应用程序被分解为多个工作单元,我们将它们称为任务。当任务可以进展时,它是可运行的;而在外部资源上被阻塞时,该任务将不可可运行(或空闲)。任务是独立的,因为任何数量的可运行任务都可以同时执行。调度程序负责在运行状态下执行任务,直到它们过渡回空闲状态为止。执行任务意味着需要为任务分配CPU时间(一种全局资源)。

有许多不同的建模调度程序的方法,每种方法各有利弊。

Tokio的第一个工作窃取调度程序于2018年三月问世,这是基于许多前者不正确的假设的首次尝试。

有关Tokio的更多信息前往官方博客查看

转载:https://rust.cc/article?id=52b39c2d-32ee-4...

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!