从2018年开始,我每天会花1个小时关注Rust社区动态,并且在Rust.CC论坛、tg channel、Steemit、GitHub、语雀订阅都开通了Rust日报,分享我每天的见闻,偶尔也夹杂了一些个人的观点。新的一年过去了,Rust每日新闻已经成为了Rust社区群大家每天必看的内容。每周也会精选几篇Rust社区中的动态,和大家分享。分享的内容就不按时间排序了。
2019-04-14
关于大会动态,请关注此帖。包含讲师介绍、议题等信息。
大会期间吃货指南: 土生土长北京饮食达人姜军为你推荐:RustCon 期间的北京特色餐饮
关于门票:
我手头有两份优惠码:IZHKfP6 和 fAp7FK1,给有需要的朋友。但不知道有没有被使用了。如果你已经买了票,但是大会期间有事不能去,可以提前联系日报小组,可以帮你吆喝一嗓子,转购给有需要的人。
以后Rust日报也将同步到该公众号,多了一个推送渠道。
$ rustup update stable
该稳定版本包括如下变动:
?语法#[attr()],#[attr[]], 和#[attr{}] 可以接受token流。之前的unrestricted_attribute_tokens Features。fn before_exec而使用unsafe fn pre_execextern crate self as foo;将当前crate的root导出为指定别名riscv64imac-unknown-none-elf 和 riscv64gc-unknown-none-elf,以及powerpc64-unknown-freebsd-C linker-plugin-lto启用链接器插件LTO优化, 使得rustc将Rust代码编译为LLVM bitcode,从而允许LLVM跨C / C ++ FFI边界执行LTO优化更多内容请看官方release notes。
该PR解决的问题是:Future::poll应该获取&Waker还是可以获得&Waker的&Context?
最终答案是:Context
今天SO发布的这个统计很有意思,先来看看Rust,三点:
继续SO统计。图1是SO统计各大语言生态的原图,上面没有Rust。但其实,以我运营Rust日报近两年的观察,Rust的生态目前确实比不上在各个领域已经成熟的语言,但是它正在底层默默地在这些领域构建自己的生态。如图2。用群友的话来说:Rust正在聚沙成塔。
另外,SO统计上关于区块链的统计也很有意思。
该贴作者对这个结果做出了以下可能的解释:
到底是什么原因呢?这个话题下评论区讨论比较激烈。
(我喜欢Rust,是因为Rust这门语言恰好符合我对理想编程语言的某些预期。你是什么原因喜欢Rust呢?虽然目前还没有太多Rust的职位招聘,但实际上暗流涌动,有很多公司都已或多或少地在生产中使用了Rust,也就是说,Rust正在聚沙成塔)
偶尔也看到一条额外信息:Apple也在使用Rust构建分布式文件系统,据说在在西雅图举行过一次小型演讲,试图招募相关人才,在网上还找不到相关信息。
关键字:远程(美国境内)、Rust、容器服务、创业
image是纯Rust实现的图像库,这次迁移主要是遵循以下计划:
准备邀请一些人可以加入组织做贡献
准备建立两个团队:发布团队(拥有crates.io的访问权限)和开发团队(拥有仓库代码的写入权限)。这样做是为了安全性。
移动其他相关的库到统一的组织下
max latency >1000ms
目前讨论还未有结果,可以持续关注。
Deno作者提交了一个PR,使用O3优化,目测也未有改善。后续也有热心人提交了新的补丁,还在尝试。
本文不是宏教程,作者写这篇文章的目的就是为了让还没有使用过Rust宏的人,早点尝试一下宏。(真香预警)
作者比较了Rust和其他语言(C/C++/Java)中的元编程,摘要:
那么Rust的宏是不是完全避免了上面的问题呢?并不是百分百的避免,但是Rust已经努力避免了常见的问题,并且可以发挥出Rust语言自身的优势。作者介绍了声明宏和过程宏的一些优势,并且在文章底部列出了一些学习宏的资料。
Mozilla工程师最新分享,将Rust实现的核心业务逻辑封装到一个中间层,然后通过新的共享策略,达到Web、iOS、Android三端共享。实施这个策略遇到的一个问题就是如何安全地使用FFI,并且还能与Rust的所有权良好地配合。因此该团队写了一个ffi-support库来帮助达成此目的。
该库最初的实现方案是通过序列化为JSON字符串在FFI中传递。但是缺点是,JSON序列化和反序列化会很慢。最重要的问题是,Java中字符串编码是UTF-16-ish。在Kotlin中,必须反序列化每个数据结构,这个过程会可能会发生异常。最严重的问题是,没有返回JSON字符串,而是某个C指针,忘记更新Kotlin中或者ObjectiveC中的数据结构,导致严重的内存问题。
值得庆幸的是,团队发现了使用Protocol BufferV2替代JSON,可以解决上面的问题。在Rust中直接使用prost库,可以通过Rust的宏生成非常干净的结构。而且,PB比JSON的性能高。
使用Ripgrep极大地提升了Atom项目内查找的性能,在文件量很大的情况下尤为明显。不过需要专门通过设置使用Rip Grep选项手动打开。
現在Linux使用者可以手動開啟WebRender了
這是一個實驗特性
他可以開啟rust寫的gpu渲染程序
給"合格"的Linux設備使用
此库为 ndarray 的 ArrayBase 类型提供了统计方法。
到目前为止,Scipy.stats (Python) 和 StatsBase.jl (Julia) 中的大部分统计特性都已经移植过来了。用 Rust 做机器学习的同学是不是可以上手了?
本库作者还邀请大家一起来讨论这个库的未来走向,好机会。
读者frostRed和Yim先后总结出来的规则,大家可以参考讨论。
在随书源码选择「精选」label也可看到。
这是上次日报里报道过「使用tensorflow与rust人脸检测」文章作者的续篇。在这篇内容里,作者介绍了如何将上一篇文章的成果通过HTTP API来提供。并且作者使用了actix-web = "1.0.0-alpha.4"版本。在mtcnn库的actix-web分支里可以看到具体实现。
这两篇文章是实践性很强的文章,建议大家跟着玩玩。
该作者的日常工作是机器学习,他在多次使用Rust进行相关的实验之后发现,Rust语言在这个领域将大有可为,并让他感觉非常激动。作者反观了Python统治下的机器学习世界,其生态系统爆炸的原因是因为有很多基础库,比如NumPy,SciPy,Pandas等。大多数项目是构建在NumPy和SciPy之上。如果Rust也拥有这些核心的基础库会怎么样?抱着这样的想法,作者加入了维护ndarray库的队伍中。他贡献了一堆PR之后,诞生了一个独立的crate:ndarray-stats。这个系列的文章,将围绕ndarray来阐述。
来自Rust国内社区 @洛佳。查看该Demo项目Readme,有详细的内容说明。
从头开始写 C 编译器,很好的学习教程。谁在学习编译原理,可以参考参考。
帅气的 wasi 教程 的 rust 实现版本。跟进最新的 wasi 的同学不能错过。
“魔术链接(Magic links)”是每次需要登录时,Web应用程序都会生成一个新的,唯一的密码,而不是单个长期存在的密码。 然后,Web应用程序会向用户发送一封电子邮件或一条带有登录链接的短信。 此链接包含此唯一密码:短暂共享密钥。
该demo是使用actix-web 0.7。
该文作者介绍了使用tokio实现i3wm(i3窗口管理器)的IPC接口
该文作者在之前分享了如何使用Rust实现一个基于状态机的高性能的JS词法分析器。这之后,又开始写系列文章分享他的心得。
sonr建立在mio之上的网络库,相比于Tokio来说,更加轻量。
来自Rust国内社区 @xiaohulu 投稿。
源代码托管在 https://github.com/blocklang/blocklang-installer
BlockLang Installer 安装在应用服务器上,支持:
下载 JDK 和 Spring boot Jar 文件;
安装 JDK;
启动 Spring boot Jar。
功能示意图:
看起来操作性很高,比linux之前的MC好用多了。本工具受 ranger 和 emacs 启发。
转换后,就不需要运行模拟器来执行swf了。开坑不久,可以参与。
simdjson 这个库这段时间非常火,因为它确实很快啊,用 SIMD 指令集来加速。这个库是 rust 的实现版本,不是包装版本。
写人类可读的单元测试的框架。看起来非常不错。
Fact
#[fact]
fn cerberus_has_3_heads() {
number_of_faces("Cerberus").should().be_equal_to(3);
}
Theory
#[theory]
#[case("Cerberus", 3)]
#[case("Hydra", 7)]
#[case("Janus", 2)]
#[case("Normal guy", 1)]
fn each_creature_has_a_correct_number_of_faces(name: &str, nbr_faces: u8) {
number_of_faces(name).should().be_equal_to(nbr_faces);
}
和pest类似,但它是基于nom实现的。
$ cargo install chit
$ chit serde
cp 的替代品啊。什么都不说了,炫酷上图吧
NEAT算法玩Flappy Bird(像素鸟) ,群友贡献,棒棒哒!JiaYe(planet0104)