「Rust每日新闻」本周精选 • 第二十一期

Words
1817
Reading
9 min
Listen
Play
8y

前言:
从2018年开始,我每天会花1个小时关注Rust社区动态,并且在Rust.CC论坛tg channelSteemitGitHub语雀订阅都开通了Rust每日新闻,分享我每天的见闻,偶尔也夹杂了一些个人的观点。大半年过去了,Rust每日新闻已经成为了Rust社区群大家每天必看的内容。在这个知乎专栏里,每周会精选几篇Rust社区中的动态,和大家分享。分享的内容就不按时间排序了。
2018-11-24

官方新闻

「官方」crates.io帐号审核措施

从2019-02-28开始,需要经过验证电子邮件地址的帐号才能往crates.io发布crate。所以,之前注册帐号的,2019-02-28之前,可能会收到警告,要求你去验证注册的email地址。如果不验证,2019-02-28之后就会收到发布错误了。 crates.io承诺将保护好你的隐私。

Read More

「CLI工作组」Cli Book新发布了打包章节的第一个版本

Read More


社区新闻

RustFest Roma大会开始了

twitter话题

塞萨洛尼基(希腊古城) GNOME+Rust Hackfest 活动记录

Read More

TiKV Rust Client呼吁社区开发者参与

TiKV Rust Client 的RFC马上完工,现在呼吁社区开发者为其做贡献。也是一次最佳练手的机会。
当然,如果你对去PingCAP工作感兴趣的话,也许也是一次绝佳的机会。

如何参与?

开发环境配置:

  • 最简单的就是本机启动一个pd(Placement Driver ),然后启动一个 Tikv,都用默认的配置应该就能跑起来。

部署TiKV

RFC-7

然后提交PR或Issues就可以了。

RedHat发布对Rust、Go、Clang/LLVM6.0的支持计划

RedHat对Rust1.29、Go1.10和Clang/LLVM6.0的可用性评估之后,现在已经将它们提升到了完全支持状态。在完全支持阶段,一些合格的重要的勘误表(RHSA)和一些选定的高优先级的错误修复表(RHBA)将会在可用时及时发布。

由于这些包正在快速发展阶段,RedHat将对它们提供特别的更新支持。Rust每个季度会有更新,对于LLVM和Go,则是半年一次。

Read More

2018 JS状态报告里提到了Rust

With projects like Web Assembly arriving on the scene, writing code directly in JavaScript might soon seem quaint as developers embrace languages like Rust instead.

img

Read More

Rust中的泛型方法:Exonum如何从Iron迁移到Actix-Web

本文是Exonum工程师记录了使用泛型编程将Iron迁移到Actix-Web框架的过程。

由于平台自身的增长需求,需要从同步迁移到异步,Iron是同步框架,已经无法满足需求,所以选择了actix-web。

他们不仅仅是迁移Web框架,更重要的是,重新设计新的API体系。本文较长,其中详细给出了如何利用泛型编程对API进行设计的思考,感兴趣的可以看看。

Read More


学习资源

使用Rust为PostgreSQL编写扩展函数

作者提供了一个库pgxr,可以方便地使用该库提供的宏来编写postgresql的扩展函数

pgxr

Read More

无等待线程本地存储

本文介绍了一种无等待线程本地存储。

Read More

PHP中运行WASM

用C语言编写的PHP扩展,通过FFI调用Rust lib,用wasmi来执行wasm。 只是一个POC版本!

「教程」Rust中的编译时Features Flag

Features Flag用于启用或禁用features的配置。本文讲解了如何在项目里使用它。

Read More

这篇文章是作者参加一个2018 塔防游戏机器人大赛过程中总结出来的。

也是用Rust实现,源码: entelect-challenge-tower-defence

游戏官网: challenge.entelect.co.za/ ,好像挺好玩。

使用Pest实现EBNF语法

作者在实现一个XML解析器,这篇文章记录了使用Pest来实现使用EBNF-esque形式的词法分析器。

「演讲」ADC'18大会: Rust音频编程

Read More

freeverb-rs

Rust+WASM实现的小程序

群友@JiaYe 使用Rust和WASM实现了Gif图片制作的小程序。

让小程序加载wasm模块,还需要做一些针对性修改,可以在该源码里看到。感兴趣的可以看看。

miniprogram-gifmaker


项目

建立在mio之上的网络库:Sonr

相比于Tokio来说,更加轻量。但不晓得是不是玩票之作,至少可以满足学习的需求。

sonr

TypedHtml: 带类型检查的JSX模板

这个库上次(前几天)介绍还是100左右的star,现在已经上升到800多star了。也增加了Readme说明。

typed-html

Vulkano:Vulkan API的Rust安全绑定

Vulkan是由Khronos Group组织(知道OpenGL的话应该都听过这个组织)提供的一个新型的图形接口,它对现代图形显卡做了一个更好的抽象。跟现有的图形接口例如OpenGL和DirectX相比,Vulkan的性能更加强劲,驱动表现更加符合预期行为。Vulkan背后的设计思路跟 Direct3D 12 和 Metal 类似,但它具有跨平台的优势,可以让你同时在windows,linux和android上进行开发。 来源

vulkano教程

vulkano.rs

用Rust实现ecmascript 2019 parser和ast visitor

wasmer: 高性能WASM JIT解释器

基于Cranelift 代码生成引擎实现的。

wasmer

quinn : Rust实现的QUIC协议

也就是HTTP3,这两天火了呢。

注意看项目Readme,有相关演讲。

quinn

「嵌入式」 Rust实现的闹钟

纯Rust打造的DIY液晶闹钟,很酷。

rusty-clock

pijul 0.11发布

pijul是基于Rust实现的类Git版本控制工具,用法介绍

Read More

amp: 类Vim的终端文本编辑器

这个库最近在GitHub趋势榜上升很快,最近几天发布了0.5.2版本。使用Vim的核心的交互模型,但是对其做了简化。其内部结构(工具集)已经独立为scribe库,包含数据结构、语法高亮、工作空间管理等功能。

drone: Rust无人机项目

四轴飞行器

drone

Proptest:Rust实现的属性测试框架

Proptest受Python Hypotheis测试框架启发,而Hypotheis是由Haskell的QuickCheck包启发而成的。

本质上它是用来产生测试数据的,但是它会注意到内存泄露以及越界等会使测试崩溃的问题,因而,在某种程度上它可以为你编写单元测试。

proptest


工具与库

Wither 0.6发布

wither是为Mongodb编写的Rust驱动。可以参考宣传文章,有更多介绍。

命令行HTTP客户端

一个Rust实现的类crul命令行http客户端,灵感来自于Python的HTTPie

rust_client

「Rust每日新闻」本周精选 • 第二十一期 | Ecency