【Rust日报】 2019-08-28

in rust •  5 years ago 

「系列文章」在Rust中使用C库

#C #FFi

两篇文章介绍了如何绑定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客户端

#async #await #tcp

作者通过创建了一个TCP客户端的项目Clobber来体验将在1.39中稳定的Async/Await的功能,结论:体验非常好,非常期待Rust异步稳定之后,社区将会带来什么变化。

通过AVL树来理解Rust的所有权

#Elixir #AVL

一个Elixir程序员开始学习Rust,在看完Too Many LinkedList之后,进一步实现更复杂的数据结构:AVL树(自平衡二叉查找树),以此来学习Rust的所有权机制。

在Rust中使用Tree-sitter解析器生成器

#TreeSitter

TreeSitter是 GitHub 团队的解析器项目, 目的在于给 GitHub 及 Atom 编辑器提供高效以及跨语言的语法解析支持, 采用 GLR 算法, 支持消歧, 从错误中恢复, 增量解析等功能。TreeSitter支持多种语言,且支持增量解析,它的出现降低了自己实现语言的门槛。

该文章简单介绍了Rust中使用TreeSitter的方法。

Crev的使用教程

#Crev

cargo-crev是一个代码审查工具,旨在构建信任的生态网络。但它并不局限于Rust社区,C/Cpp也可以使用。

该工具可以判断你项目中依赖crate的安全性、质量和发现的问题。可以在公共的git仓库里发布可验证的review信息。通过这种方式期望在Rust生态系统中构建可信任的网络。将不会有人再受到未经审查和不受信任代码的困扰。

想想npm因为依赖包出了多少次安全事故。这个工具ms不错,但是否真的可以解决问题?

Read More: https://wiki.alopex.li/ActuallyUsingCrev

使用Rust进行游戏开发6个月之后收获到了什么?

#game

一位使用Rust开发游戏的妹纸,最近6个月内使用ggez框架开发自己的个人游戏项目,这篇文章简单介绍了她的一些感想,比如如何坚持做自己的项目、ECS很棒之类的。

重点是她之前写的另一篇文章:24小时游戏开发,介绍了如何使用ggez框架在24小时内开发一款小游戏。感兴趣的看看吧。

Read More: https://iolivia.me/posts/6-months-of-rust-game-dev/

artichoke: Rust实现的Ruby

#Ruby

兼容MRI。Artichoke core提供了一个与实现无关的Ruby运行时,任何实现都可以加载它。Artichoke core中的运行时将100%通过core和标准库Ruby规范。运行时将以Rust和Ruby的混合方式实现。Artichoke中的Regexp实现就是这种方法的一个典型例子。

rx: 一个Rust实现的可扩展的现代像素编辑器

#PixelEditor

像素编辑器一般用于对小图片进行编辑制作的工具。

img

「系列」Rust for OOP系列:闭包

#learning #oop

这位博主打算写一系列主题是Rust for OOP的文章,主要是针对有一定OOP语言开发经验的人来学习。已经写了多篇,本文是关于闭包。

Read More:https://oribenshir.github.io/afternoon_rusting/blog/closures

actix-raft: 基于actix框架实现的raft库

#raft

Raft是一种分布式共识协议。该作者的目标也是想做分布式数据库。

Repo: https://github.com/railgun-rs/actix-raft

Rust异步代码的优势:相比于其他语言更加容易调试

#async

该文作者通过研究栈回溯信息发现,Rust的异步代码基于轮询(Poll)模型,意味着我们总是有「异步调用者」在轮询期间,等待「异步被调用函数」在栈上完成。这个属性使得调试异步代码在Rust中相比于其他语言更加容易。(该文比较了JavaScript中的异步栈回溯信息

Read More: http://fitzgeraldnick.com/2019/08/27/async-stacks-in-rust.html

「视频」使用Rust扩展Python

#python

演讲的重点是:pyo3 和 milksnake

「思考」对于小的结构体,传值(By-Copy)还是传引用(By-Borrow)?

#Struct

这个小小的问题,涉及日常编写代码需要考虑的两个问题:性能 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

#BerkeleyYACC

作者的练手项目

Repo: https://github.com/sivadeilra/racc/


From 日报小组 Chaos

日报订阅地址:

独立日报订阅地址:

社区学习交流平台订阅:

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!