【Rust日报】 2019-03-02
用Rust重写Node.js实现的接口之后所带来的震惊
#node.js
作者用Rust重写了Node.js实现的一个小接口,但是流量很大,每秒180个请求。
之前Node.js版本技术栈:
- koa,框架
- pino,日志
- request,转发请求
Rust版本技术栈:
- actix-web, 框架
- serde-json, 序列化处理json
- slog-json,日志
- reqwest,转发请求
作者使用的是reqwest::async异步请求。Rust版本部署之后,CPU使用率较Node.js版本下降了90%,内存使用量降下了一半。
这些数据更有助于作者说服他的同事们使用Rust,分享出来也可以帮助大家来说服公司使用Rust。
「官方」Async/Await状态报告
Niko发表了这篇博客,阐述了async/await当前的状态:
- 建立了async/await实施小组。该小组属于编译器团队,但是专注于具体的实现。
- 在async/await稳定之前,还需要确定一个重要的问题:「该稳定什么?」。
Niko所考虑的是,为了什么目的而稳定。
如果稳定的目的是「促进async/await被广泛使用」,那么首先应该解决的就是await语法。
如果稳定的目的是「让早起的使用者们开始更多地使用它们」,则只要不存在向后兼容的问题就可以。
这两个目的都可以,但是如果选择后者,则需要传达更多的细节,以防止「早期使用者们」遇到下面的问题时不会被拒之门外。
当前的问题:
- 实施问题。实施组现在发现一个严重阻碍进度的问题:「issues/54716」,以及一些影响开发者体验的问题。另外也没有大量的活跃贡献者来参与async/await的实现工作。
- 语法问题。对于await语法的讨论结果,由withoutboats在整理中。为了稳定aysnc/await,其实也并不一定非要稳定await语法,也可以先稳定await!宏。这个方案有利于早期的使用者,但是对于更广泛的大众来说,似乎并不是那么令人满意。所以可以像try!宏那样,先稳定宏,然后再稳定具体的语法。(让子弹飞一会)
- 解决难题。作为一个社区最常做的事情之一,就是找到一种方法来解决真正难以解决的问题。await语法问题正是一个契机,可以帮助优化社区的讨论流程和工具。
总之, async/await即将到来:Niko已经迫不及待地想看看人们用它来构建什么了。
「嵌入式Rust讨论」用什么硬件可以更容易地开始用Rust进行嵌入式开发
有人在Reddit发帖询问此问题,他用的是Arduino,但是使用Cpp和Rust都非常痛苦。即便使用针对Arduino的Rust版本avr也不太稳定,所以他想问问什么硬件更适合入门者?
回复中有人提到,使用基于ARM Cortex-M的硬件,比如STM-32 uC更好,Rust对该硬件体系支持的更好。可以配合discovery book一书学习。 评论中也有其他建议可以看看。
为Rust库公开FFI接口
该文作者之前实现了battery库,该库用到了battery-ffi库,专门封装了一些FFI接口,给主库使用。他在这篇文章中写下了编写FFI的一些注意事项。可以看作是一个FFI最佳实践来学习。
Rust项目如何使用Azure云的Pipelines服务
tweek-rust: Rust实现的Tween动画工具包
Tween动画可以对对象进行缩小,放大,旋转,渐变,位移等操作,用于在游戏或应用中实现一些渐变类动画动作。最早是伴随Flash技术出现的。现在该技术已经用在了web前端和手机App中。
该库中包含了两个示例,可以看看。
Atto: Rust实现的一个简单的函数式语言
laminar: 用于多人游戏的半可靠UDP协议实现
该库在UDP的基础上实现了TCP的一些功能。它被用于Amethyst游戏引擎中。
MIRAI: 来自Facebook实验室的Rust MIR抽象解释器
MIRAI的目标是成为Rust的静态分析工具。
日报订阅地址:
Leave 【Rust日报】 2019-03-02 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