【Rust日报】 2019-08-28
「系列文章」在Rust中使用C库
两篇文章介绍了如何绑定C库,并且将其抽象为安全的方法调用。
Part I: https://medium.com/dwelo-r-d/using-c-libraries-in-rust-13961948c72a
Part II: https://medium.com/dwelo-r-d/wrapping-unsafe-c-libraries-in-rust-d75aeb283c65
使用async/await构建高性能TCP客户端
作者通过创建了一个TCP客户端的项目Clobber来体验将在1.39中稳定的Async/Await的功能,结论:体验非常好,非常期待Rust异步稳定之后,社区将会带来什么变化。
- Read More:https://ragona.com/posts/clobber_async_await
- Clobber : https://github.com/ragona/clobber
通过AVL树来理解Rust的所有权
一个Elixir程序员开始学习Rust,在看完Too Many LinkedList之后,进一步实现更复杂的数据结构:AVL树(自平衡二叉查找树),以此来学习Rust的所有权机制。
- Read More: https://francismurillo.github.io/2019-07-31-Understanding-Rust-Through-AVL-Trees/
- Codes: https://github.com/FrancisMurillo/avl_tree_set_rs
在Rust中使用Tree-sitter解析器生成器
TreeSitter是 GitHub 团队的解析器项目, 目的在于给 GitHub 及 Atom 编辑器提供高效以及跨语言的语法解析支持, 采用 GLR 算法, 支持消歧, 从错误中恢复, 增量解析等功能。TreeSitter支持多种语言,且支持增量解析,它的出现降低了自己实现语言的门槛。
该文章简单介绍了Rust中使用TreeSitter的方法。
- Read More: https://rfdonnelly.github.io/posts/using-tree-sitter-parsers-in-rust/
- tree-sitter: https://tree-sitter.github.io/tree-sitter/
Crev的使用教程
cargo-crev是一个代码审查工具,旨在构建信任的生态网络。但它并不局限于Rust社区,C/Cpp也可以使用。
该工具可以判断你项目中依赖crate的安全性、质量和发现的问题。可以在公共的git仓库里发布可验证的review信息。通过这种方式期望在Rust生态系统中构建可信任的网络。将不会有人再受到未经审查和不受信任代码的困扰。
想想npm因为依赖包出了多少次安全事故。这个工具ms不错,但是否真的可以解决问题?
Read More: https://wiki.alopex.li/ActuallyUsingCrev
使用Rust进行游戏开发6个月之后收获到了什么?
一位使用Rust开发游戏的妹纸,最近6个月内使用ggez框架开发自己的个人游戏项目,这篇文章简单介绍了她的一些感想,比如如何坚持做自己的项目、ECS很棒之类的。
重点是她之前写的另一篇文章:24小时游戏开发,介绍了如何使用ggez框架在24小时内开发一款小游戏。感兴趣的看看吧。
Read More: https://iolivia.me/posts/6-months-of-rust-game-dev/
artichoke: Rust实现的Ruby
兼容MRI。Artichoke core提供了一个与实现无关的Ruby运行时,任何实现都可以加载它。Artichoke core中的运行时将100%通过core和标准库Ruby规范。运行时将以Rust和Ruby的混合方式实现。Artichoke中的Regexp实现就是这种方法的一个典型例子。
rx: 一个Rust实现的可扩展的现代像素编辑器
像素编辑器一般用于对小图片进行编辑制作的工具。
- Read More: https://cloudhead.io/rx/
- Repo: https://github.com/cloudhead/rx
「系列」Rust for OOP系列:闭包
这位博主打算写一系列主题是Rust for OOP的文章,主要是针对有一定OOP语言开发经验的人来学习。已经写了多篇,本文是关于闭包。
Read More:https://oribenshir.github.io/afternoon_rusting/blog/closures
actix-raft: 基于actix框架实现的raft库
Raft是一种分布式共识协议。该作者的目标也是想做分布式数据库。
Repo: https://github.com/railgun-rs/actix-raft
Rust异步代码的优势:相比于其他语言更加容易调试
该文作者通过研究栈回溯信息发现,Rust的异步代码基于轮询(Poll)模型,意味着我们总是有「异步调用者」在轮询期间,等待「异步被调用函数」在栈上完成。这个属性使得调试异步代码在Rust中相比于其他语言更加容易。(该文比较了JavaScript中的异步栈回溯信息
Read More: http://fitzgeraldnick.com/2019/08/27/async-stacks-in-rust.html
「视频」使用Rust扩展Python
演讲的重点是:pyo3 和 milksnake
- Videos:
- PyO3 : https://github.com/PyO3
- milksnake: https://github.com/getsentry/milksnake
「思考」对于小的结构体,传值(By-Copy)还是传引用(By-Borrow)?
这个小小的问题,涉及日常编写代码需要考虑的两个问题:性能 vs 人体工程学
我们是追求性能呢,还是追求代码的可读性和维护性等?
该文作者通过大篇幅的讨论,甚至深入到C++中探讨,得出结论:还是By-Copy吧。至于原因,还需要仔细阅读他的文章。
Read More: https://www.forrestthewoods.com/blog/should-small-rust-structs-be-passed-by-copy-or-by-borrow/
RACC: Berkeley YACC解析器生成器移植到Rust
作者的练手项目
Repo: https://github.com/sivadeilra/racc/
From 日报小组 Chaos
日报订阅地址:
独立日报订阅地址:
社区学习交流平台订阅:
Leave 【Rust日报】 2019-08-28 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