
【Rust日报】 2019-08-05
「Rust异步之书」中文翻译
nphysics的未来:纯Rust的2D和3D实时物理引擎
作者在本文中探到了Nphysics将来的愿景,是做一个性能水平可与现有流行的C++开源物理引擎(如Box2D和Bullet Physics)相媲美的Rust实时物理引擎。
该库现在属于Rustsim组织。
veloren: 一个类似于我的世界的游戏发布了0.3版本
「SO问答」Rust中的128位整数如何在64位系统上工作?
问题:
Rust有128位整数,用数据类型i128表示(u128表示无符号整数):
let a:i128 = 170141183460469231731687303715884105727;
Rust如何使该i128值在64位系统上工作?它是如何做算术的?因为据我所知,这个值不能放在x86-64处理器的一个寄存器中。编译器是以某种方式为一个i128值使用两个寄存器,还是使用某种大整数结构来表示它们?
回答:
所有Rust的整数类型都编译为LLVM整数。LLVM允许1到2^23 - 1之间任意位宽的整数。LLVM指令通常处理任意大小的整数。
在LLVM IR级别,答案是:两者都不是。i128适合一个寄存器,就像其他单值类型一样。另一方面,一旦翻译成机器码,两者之间就没有什么区别,因为结构可以像整数一样分解成寄存器。然而,当进行算术运算时,将整个数装入两个寄存器是一个非常安全的选择。
*虽然我知道对大于128的大小和非2的幂的支持是不稳定的,并且实现可能有错误,这可能部分解释了为什么Rust只公开1、8、16、32、64和128位整数。
indextree 4.0发布
pulldown_cmark库为了增加解析速度,快速构建和遍历AST,就使用了indextree。
Battleship: 控制台游戏
新手可参考它来学习Rust
SPOJ将Rust升级到1.33版本
SPOJ是波兰最为出色的Online Judge之一,界面和谐,题目类型也非常丰富,适合有一定基础的选手练习,对高手而言也是个提高能力的良好平台。现在已经支持了Rust 1.33版本。
Rust vs GUI: Rust所有权对于GUI开发的影响
本文通过一个简单的示例探讨了Rust所有权对GUI开发的影响。
结论:在构建GTK应用程序时,Rust带来了一些合理的权衡。但这并不意味着它没有代价。如果你决定使用Rust进行GTK应用程序开发,那么在开始设计自己的框架之前,你可能需要检查relm(Rust实现的,基于GTK+的仿elm框架)是否有更高级别的应用程序接口。
isahc: 之前的cHTTP已经改为此名
一个实用的HTTP客户端。
Isahc vs Reqwest:
- Isahc使用http crate作为其公共API的一部分,而reqwest将其隐藏在实现中
- Isahc具有更小的依赖树和更小的二进制内存占用
改名的原因:
- cHTTP太难念
- cHTTP不容易被记住
(所以,isahc难道是 is a http client 缩写吗? 这新名字起的也不咋地。。。233)
「系列文章」用Rust重写物联网网关 Part 2: 饮鸩止渴:为什么我们不用C++重写IoT应用
标题为:「Abusing Fire for Light - Why we didn’t rewrite our IoT app in C」,翻译过来就是: 「饮鸩止渴:为什么我们不用C重写IoT应用」
文章里这个类比比较经典(普罗米修斯盗了天火,为世界带来了光明,但与此同时也带来了灾难):
我们本可以用C重写我们的物联网平台应用。使用C就像用蜡烛照明一样。它的基本属性是众所周知的,它从文明之初就存在了,如果你滥用它,它会让你周围的房子着火。(在这个比喻中,C将是“所有可以被点燃产生光的东西的集合”。)
该文的作者是智能家居系统公司Dwelo的IoT工程师,该文主要罗列了一些Cpp编写嵌入式应用可能拥有的问题。
用epochs修复c++
有人写了篇文章,呼吁Cpp也学Rust那样引入Epochs。
想象一下,你已经设计了一种编程语言超过30年,并且它逐渐在全球广泛使用。你在开始时所做的一些决定非常出色,并为你的项目的成功做出了贡献。然而,还有一些不是最好的:多年来,你和你的用户意识到,如果你多年前所做的选择略有不同的话,这个世界会变得更好。
你不断发展你的语言,增加有用的功能,并使它跟上竞争的步伐。然而,糟糕的选择和旧的(现在已经过时的)结构仍然挥之不去。
你试着删除语言中最危险和最少使用的部分,虽然他们的删除非常成功,但是一些用户无疑会受到它的阻碍。对于更受欢迎的构造,您尝试不赞成:社区的大部分人欢迎它并迁移它们的代码库,而另一个人发现实现一致性所需的工作要么大得不合理,要么由于遗留依赖关系或许可问题而不可能。
除非你偶然发现这篇文章,否则似乎没有出路。它的作者提出了一个不可思议的主张:
如果我告诉你,我可以解决你所有的问题呢?更好的是,如果我告诉你向后兼容性永远不会被打破,并且可以自动迁移到你的语言的更新版本呢?
此时,你立即认为这家伙一定是疯了。然后他说...
而且,已经有人做了。而且奏效了。
现在你感兴趣了。
这篇文章的Rddit讨论贴里有人说:这就是我为什么学习Rust的原因,Cpp那帮人是不会同意的。
proc_macro_roids 0.3 发布
#proc_macro
proc_macro_roids是一个辅助你写过程宏的小工具。
staticvec: 基于const generics实现的栈分配固定容量的Vec替代方案
发布了0.2版本
From 日报小组 Chaos
日报订阅地址:
独立日报订阅地址:
社区学习交流平台订阅:
Leave 【Rust日报】 2019-08-05 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