欢迎来到《Rust之旅》
《Rust之旅》(Tour of
Rust)是一个Rust入门教程系列,它将从例子开始,引导初学者尝试使用Rust的各个特性。整个系列包括9个章节,109篇文章,每篇之后都有单独的练习,涵盖Rust语言的大量知识,并带领初学者初步熟悉Rust语言的生态。比较新的语言特性也在计划的开发过程中。这个项目可能是从Tour
of Go中获得灵感的,已经发展出自己的网站,并且拥有包含简体中文在内的十种语言翻译,受到广大Rust爱好者的欢迎。
Wonder:唯美的Rust WASM游戏
游戏开发者Ian Kettlewell制作了一款Rust游戏Wonder,以参加知名的48小时游戏开发比赛Ludum Dare。这款游戏要求玩家绘制路线,引导小球的运动,在唯美的画面中收集所有的圆点来通关。
Ian是Unity开发的老手,但这次它选用Rust语言的生态制作,主要是考虑Rust开发WASM较为简单,编译也比Unity的WebGL要节省时间。
文章中,作者详细描述了制作这款游戏的技术细节,包括如何产生音效和处理物理碰撞,还有效地使用了async代码编写。游戏艺术设计的灵感来自日本的花札文化,作者在48小时内快速完成设计。
最终,作者的游戏获得了大赛综合排名的第71名,而在有趣性上获得了大赛第16名的好成绩。
https://ianjk.com/rust-gamejam/
Rust是一门超棒的服务端开发语言
本篇文章中,作者通过改写他的博客网站,体会了Rust开发网页服务端的优势和不足。作者选择了rocket作为开发框架。
作者认为Rust非常好的地方在于,很少需要亲自处理生命周期和借用检查器的问题。相比Flask,Rocket充分发挥了Rust过程宏灵活性的优势,这给作者留下了深刻的印象。稍微糟糕一些的部分,可能在于一些trait实现的错误非常长,不便于阅读,还有一些第三方库API的设计可能有小问题。
当Rust最终发展为一门生态成熟的语言,作者认为这时候相比Python,Rust在网页开发上会有更多的优势。作者注意到最终成果的资源占用,Rust网页服务器的CPU占用非常低,性能十分良好。
https://stu2b50.dev/posts/rust-is-surpris76171
nnnoiseless:把多媒体音频代码重写为Rust
本篇文章中,作者用Rust重写了知名的音频去噪库RNNoise。本次作者重写的动机出于原来的C语言项目缺乏维护,随着时间的推移,已经无法在部分平台上编译。由于这个库可能被其它C语言项目依赖,在FFI部分必须保持兼容,尤其是部分结构体的内存布局必须相同,作者认为这是移植工作的痛点之一。
探针效应指的是添加测试部分后软件的行为会变得不同,作者本次也遇到了类似的头疼问题,不过重新审阅unsafe代码后,作者找到了问题;作者提到这也是不得不和C语言兼容后,Rust编译器无法帮它找到这个问题,如果只考虑safe代码,编译器是能找到问题的。
最终作者测试了库的性能,处理同一段音频,作者用Rust编写的nnnoiseless库需要大约14.5毫秒,原来C语言编写的RNNoise则需要至少17毫秒,重写后性能有了部分的提升。
在文章末尾,作者特别感谢了Rust的包管理器cargo,成熟的包管理器帮了他很大的忙。
https://jneem.github.io/nnnoiseless/
Yew-state:易用的全局状态存储库
Noah Corona制作了这款库,为yew的生态添加了共享状态的部分。这对开发yew架构的开发者是一件好事情。项目使用MIT协议发布。
https://github.com/intendednull/yew-state
4229 0 0 【Rust日报】2020-07-14 Rust是一门超棒的服务端开发语言
文章评论