「Rust异步之书」中文翻译
#async #book
感谢 @huangjj的分享
nphysics的未来:纯Rust的2D和3D实时物理引擎
#physics #game #Rustsim
作者在本文中探到了Nphysics将来的愿景,是做一个性能水平可与现有流行的C++开源物理引擎(如Box2D和Bullet Physics)相媲美的Rust实时物理引擎。
该库现在属于Rustsim组织。
veloren: 一个类似于我的世界的游戏发布了0.3版本
#game
「SO问答」Rust中的128位整数如何在64位系统上工作?
#stackoverflow
问题:
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发布
#indextree
pulldown_cmark库为了增加解析速度,快速构建和遍历AST,就使用了indextree。
Battleship: 控制台游戏
#cli
新手可参考它来学习Rust
SPOJ将Rust升级到1.33版本
#spoj
SPOJ是波兰最为出色的Online Judge之一,界面和谐,题目类型也非常丰富,适合有一定基础的选手练习,对高手而言也是个提高能力的良好平台。现在已经支持了Rust 1.33版本。
Rust vs GUI: Rust所有权对于GUI开发的影响
#GUI #GTK
本文通过一个简单的示例探讨了Rust所有权对GUI开发的影响。
结论:在构建GTK应用程序时,Rust带来了一些合理的权衡。但这并不意味着它没有代价。如果你决定使用Rust进行GTK应用程序开发,那么在开始设计自己的框架之前,你可能需要检查relm(Rust实现的,基于GTK+的仿elm框架)是否有更高级别的应用程序接口。
isahc: 之前的cHTTP已经改为此名
#http
一个实用的HTTP客户端。
Isahc vs Reqwest:
- Isahc使用http crate作为其公共API的一部分,而reqwest将其隐藏在实现中
- Isahc具有更小的依赖树和更小的二进制内存占用
改名的原因:
- cHTTP太难念
- cHTTP不容易被记住
(所以,isahc难道是 is a http client 缩写吗? 这新名字起的也不咋地。。。233)
「系列文章」用Rust重写物联网网关 Part 2: 饮鸩止渴:为什么我们不用C++重写IoT应用
#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
有人写了篇文章,呼吁Cpp也学Rust那样引入Epochs。
想象一下,你已经设计了一种编程语言超过30年,并且它逐渐在全球广泛使用。你在开始时所做的一些决定非常出色,并为你的项目的成功做出了贡献。然而,还有一些不是最好的:多年来,你和你的用户意识到,如果你多年前所做的选择略有不同的话,这个世界会变得更好。 你不断发展你的语言,增加有用的功能,并使它跟上竞争的步伐。然而,糟糕的选择和旧的(现在已经过时的)结构仍然挥之不去。 你试着删除语言中最危险和最少使用的部分,虽然他们的删除非常成功,但是一些用户无疑会受到它的阻碍。对于更受欢迎的构造,您尝试不赞成:社区的大部分人欢迎它并迁移它们的代码库,而另一个人发现实现一致性所需的工作要么大得不合理,要么由于遗留依赖关系或许可问题而不可能。 除非你偶然发现这篇文章,否则似乎没有出路。它的作者提出了一个不可思议的主张: 如果我告诉你,我可以解决你所有的问题呢?更好的是,如果我告诉你向后兼容性永远不会被打破,并且可以自动迁移到你的语言的更新版本呢? 此时,你立即认为这家伙一定是疯了。然后他说... 而且,已经有人做了。而且奏效了。 现在你感兴趣了。
这篇文章的Rddit讨论贴里有人说:这就是我为什么学习Rust的原因,Cpp那帮人是不会同意的。
proc_macro_roids 0.3 发布
#proc_macro
proc_macro_roids是一个辅助你写过程宏的小工具。
staticvec: 基于const generics实现的栈分配固定容量的Vec替代方案
#Vector
发布了0.2版本
From 日报小组 Chaos
日报订阅地址:
独立日报订阅地址:
社区学习交流平台订阅:
评论区
写评论还没有评论