【Rust日报】 2019-04-24
Rust核心团队发布Rust 2019 Roadmap
Rust核心团队最近发布了Rust 2019 Roadmap RFC,主要的工作分为:
治理。改进项目运作方式。包括整理RFC流程。
完成已经开始但还未完成的工作。比如异步等。
提高语言和工具的整体质量。包括改进编译时间和增强IDE支持等。
「官方演讲」Rust:未来四十年的语言
为什么是四十年?
作者拿铁路百年史做了类比
1830年5月24日,美国第一条铁路(巴尔的摩—俄亥俄,21公里)通车。
1869年5月10日,美国建成第一条横贯美洲大陆的太平洋铁路,总长2849公里。 革命性的里程碑,花费了39年。
1901年,德国西门子—哈尔斯克电机公司制造的电力机车,在柏林附近的曼菲尔德—措森线上,创造了时速162公里的世界纪录。
这个时间花了71年。
那么系统编程语言呢?
1973年,Unix正式用C语言改写。
到2015年,Rust语言发布,是站在C/Cpp语言肩膀上的革命性语言。革命性的里程碑,花费了42年。
那么未来四十年,Rust语言会取得什么辉煌成就?拭目以待。
「官方」HashMap的SwissTable算法重新实现的PR已经被合并
将会在Rust 1.36版本中看到。
该PR作者一共发布过两个PR。第一次是将Swisstable在标准库中重新实现了一遍,第二次是将Swisstable作为独立的hashbrown crate引入标准库中。显然,这次合并的PR是第二种方式。
「官方」 Stabilize futures_api的PR已被合并
#stablilize_futures_api
这意味着异步开发离稳定又近了一步。此次Futures API主要是两大模块:
future 模块
- std::future
- std::future::Future trait和它关联的项(Output和poll)
task 模块
- std::task
- std::task::Poll
- std::task::Waker
- std::task::RawWaker
- std::task::RawWakerVTable
- std::task::Context
另外还有一些api的名称按照Rust标准库中统一的命名风格被修改。
在Google Cloud Run上使用Diesel,Rocket和MySQL部署Rust REST API
谷歌最近发布了他们新的Cloud Run服务的测试版,这是一个通过云中的容器运行无状态网络服务器的平台。 它结合了无服务器架构和托管容器解决方案(如Amazon的EKS)的最佳方面,使得将无状态Web应用程序部署到云中的过程比以往任何时候都更容易。
感兴趣的可以玩玩
使用Sonr实现一个简单的chat服务
「嵌入式Rust」embedded-timeout-macros 发布 0.1
pijul 0.12发布
pijul是一个Rust实现的类Git的分布式版本控制工具,发布了0.12版本
「RustLatam 2019 系列视频」Without Boats: 零成本异步IO
Rustlatam2019大会的视频陆续放出了,此链接是without boats的演讲。大家可以在youtube列表中查看其他的。
rustup发布了1.18.0版本
「嵌入式Rust」使用DMA传输数据
DMA(Direct Memory Access),直接存储器访问。
之前都是,CPU参与,一点点把数据,从一个地方拷贝,即像搬家一样搬到,另一个地方。很明显,此时,相对时间比较宝贵(比较值钱)的CPU,把时间,就用在(浪费在)拷贝数据了。所以才出现了DMA,专门去干拷贝数据的累活。DMA是一种无需CPU的参与就可以让外设和系统内存之间进行双向数据传输的硬件机制,它不是独立外设,而是硬件模块支持的机制。
Futures 0.1 兼容层
为了弥合由futures 0.1和不稳定的异步生态造成的生态鸿沟,官方异步团队在futures 0.3中引入了futures 0.1的兼容层,本文阐述了如何来使用它。
「教程」使用Rust创建一个ascii的渲染工具
「系列博客」Rust中让我享受的二三事:Enum
#enjoy_rust
该文作者写了一系列博客,阐述了Rust中他认为很有用的一些特性,本篇是enum,还有其他文章。感兴趣可以看看。
核反应堆设计模式
作者认为,设计模式分为两种层级:低级和高级。像那种流行的设计模式,比如工厂模式之类,属于低级的设计模式。而高级的设计模式,是指整个应用程序的设计哲学。本文主要谈论后者,作者称之为「核反应堆设计模式」。作者使用该设计模式很长时间,并且它不特定于Rust,还可以应用于C/C++和Perl等其他语言。但作者认为,该模式应该在Rust中更受欢迎。
核反应堆设计模式原理
假如你的应用程序中有一个非常难以处理的难题(比如一个事件循环,或者是复杂的数据结构等等),那么你可以单独去解决这个难题,然后在这个难题的核心周围设置一堆API墙,利用这面强将难题核心和其他周围环境隔离起来。也就是说,将难题作为一个独立的整体去思考,而不能让它传播到其他程序中。就像核反应堆一样。
为什么说Rust更适合这种设计模式
- Rust语言比较吸引那些喜欢硬问题的人。
- 心理作用。比如Rust就分离了unsafe Rust。
- Rust的类型系统。可以更加方便地构建「核反应堆」。
有人说,这不就是「封装」吗?难道说,只是把「封装」换了个名字?
并不是。封装只是核反应堆的必要条件。并非每个封装的东西都是核反应堆。
六个你可能从未见过的有用的Rust宏
概要:
- log-derive: 记录函数错误的宏
- recap: 正则表达式解析库
- shrinkwraprs: 将数据类型重新定义为新的不同类型
- metered: 自动在方法上生成统计信息
- derive-new: 自动实现new方法
- snafu: 提供辅助函数来处理Rust中的错误,帮助增强代码的可读性
From 日报小组 @Chaos
日报订阅地址:
Leave 【Rust日报】 2019-04-24 to:
Read more #rust posts
Best Posts From ChaosBot
We have not curated any of blackanger's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From ChaosBot
- 【Rust日报】 2019-09-06
- 【Rust日报】 2019-09-05
- 【Rust日报】2019-09-04
- 【Rust日报】 2019-09-03
- 【Rust日报】 2019-09-01
- 【Rust日报】 2019-08-30
- 【Rust日报】 2019-08-29
- 【Rust日报】 2019-08-28
- 【Rust日报】 2019-08-27
- 【Rust日报】2019-08-26
- 【Rust日报】 2019-08-25
- 【Rust日报】 2019-08-24
- 【Rust日报】 2019-08-23
- 【Rust日报】 2019-08-22
- 【Rust日报】 2019-08-21
- 【Rust日报】2019-08-20
- 【Rust日报】2019-08-19
- 【Rust日报】2019-08-18
- 【Rust日报】 2019-08-17
- 【Rust日报】 2019-08-16