< 返回版块

ZhangHanDong 发表于 2019-03-31 22:38

Tags: rust

Rust日报小组成立

从下周开始将由ChaosBot、Mike和Damody三位轮流发布日报,其中Damody为台湾同胞,如果大家看到中文繁体日报,就是他发布的。

发日报有什么好处?我来给大家透露一下。至少有三点好处:

  1. 了解Rust生态最新动态
  2. 锻炼自己的总结能力。对于感兴趣的文章,可以快速汲取其主要观点。
  3. 为自己的提升和学习铺垫了资料库。

所以,也欢迎大家参与Rust日报的内容建设中。


Ocypod: 基于Redis的任务队列服务

#job_queue

使用Rust/Actix/Redis实现。据作者称已经用于生产环境几个月,每周处理数百万个任务。

特点:

  • 语言无关

  • 使用redis

  • 使用HTTP/JSON协议

  • 提供HTTP接口

  • 灵活的工作元数据

  • 失败时自动重试

  • ocypod

  • Doc


Rust中型变(Variance)的直观解释

#Variance

简单讨论了泛型参数的协变和声明周期参数中的子类型概念。

Read More


过程宏 101

#proc_macro

一个简单的过程宏入门教程

Read more

可以配合Dtolnay的proc macro workshop来学习。该workshop是Dtolnay为Rust Latam Conf准备的。

proc-macro-workshop


「系列文章」Rust学习中的障碍 Part 1

#learn

该文作者在他博客里记录下来他学习Rust中感觉困难的部分,主要是所有权相关内容,以便帮助后来者。

Read More


RaptorQ(RFC6330)与Rust性能优化

#RaptorQ

课外知识:

喷泉码是一种特殊的前向纠错码(FEC),其理论特征十分简单:如果想发送的数据大小为K个数据包的大小,通过喷泉码编码后可以产生并实际发出K+X个数据包,而接收方只需要这其中的任意K个数据包就可以重建原数据。超出原始数据大小的X个数据包理论可以无穷多地生成,因此可以通过调整X的量以适应不同环境不同丢包率的需求。

RaptorQ(以下简称RQ)作为喷泉码的一种,同时也是系统码(Systematic Code)。这意味着一组数据如果通过RQ进行编码,生成的前K个数据包将与输入数据完全一致。我们称这K个数据包为源码符(source symbols)。而基于源数据额外生成的X个数据包,我们称之为修复码(repair symbols)。修复码被用于恢复在传输过程中丢失的源码符。因此,如果传输过程中没有丢失任何源码符,不需要任何解码运算就可以获重建源数据,可以节省时间与内存占用。这种特性也是系统码的一大优点。

RQ码的某个实现方法高通公司写入RFC6330。可用于视频传输。

在本文中,作者给出了他用Rust实现RQ库的优化历程,包括:

  • 使用unsafe和SIMD

  • 使用ArrayMap替换HashMap

  • 使用cfg(debug_assertions)禁用某些验证检查

  • 更新算法、删除了很多clone调用、使用位图等替换HashSet,在这部分内容作者提到,他最初对借用检查器感到非常沮丧,但是熟悉以后他认为借用检查器不仅仅是有助于所有权,而且还有助于理解性能。

  • 将petgraph库替换为自定义的实现

  • 课外知识参考文章

  • raptorq

  • Read More


宣布ugdb和unsegen

#gdb #tui

ugdb是gdb的替代TUI前端,unsegen是一个建立在termion之上的TUI库。


别人不会告诉你的关于Rust的五件事

#tips

如果你已经知道了,就当作者没说过。

Read More


lucet: 沙盒WASM编译器

#wasm

Lucet是一个本地WebAssembly编译器和运行时。它旨在安全地在应用程序中执行不受信任的WebAssembly程序。

lucet


sonic: 搜索后端

#elasticsearch

不错的项目。快速,轻量级和无架构的搜索后端。 Elasticsearch的替代方案,可在几MB的RAM上运行。

sonic


boringtun: Rust实现的用户态WireGuard

#WireGuard #userspace #vpn

WireGuard是一个科学上网的解决方案。boringtun是它的用户态Rust实现。

boringtun


guillotiere: 快速释放和矩形合并的动态纹理图集分配器

#graphic_render

该库解决了图形渲染中动态批处理性能问题。

guillotiere


rcore_plus: 清华大学uCore OS的Rust实现

#uCore #OS

目前刚支持gcc,nginx,redis等(基于musl libc)在rcore上运行。

rcore_plus


lorri: nix-shell替代品

#nix_shell

lorri


wrangler: 方便在cloudflare worker上使用wasm的工具

#wasm #Cloudflare

wrangler是一个CLI工具,专为有兴趣在Cloudflare Workers上使用Rust生成的WebAssembly的用户设计。

wrangler


awesomo-rust: 按英文字母索引排序的Rust知名项目列表

#awesome

awesomo-rust


RustyVolleySrc: 使用Rust和WASM实现的排球游戏

#game #wasm


日报订阅地址:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页