Rust中文视界2021年总结
Rust 中文社区一直在不断发展,持续地向外输出:
- 2021 年,Rust 中文社区共发表日报 326 篇,累计阅读数十万次,涵盖 Rust 各个方面,详情可查看:https://rustcc.cn/section?id=f4703117-7e6b-4caf-aa22-a3ad3db6898f
- 社区的张老师投身 Rust 界多年,他在 2021 年发布了《Rust 编码规范》,参与商用 Rust 项目落地,创办《Rust 精选》,筹备《Rust China Conf 2021》大会,并创建中文社群,组织线上沙龙。与此同时还完成了诸多图书和课程工作,为 Rust 的发展和推广起到了不可磨灭的作用。详情可查看:https://mp.weixin.qq.com/s/eBYlvokJ5Q-Up87OP7qVUw
- 2021 年 6 月 3 日,RustSBI 在 GitHub 成立组织,RustSBI 是 RISC-V 平台下的引导程序实现,它完全由 Rust 编写,并已经被录入 RISC-V SBI 国际标准。来自社区的维护者洛佳表示,“RustSBI 可以完成硬件到硬件的兼容性,从而延长硬件的生命周期,降低管理和迭代更新成本。”详情可查看:https://github.com/rustsbi/rustsbi
Rust嵌入式工作组2021年总结
来自社区的张汉东老师对文章进行了总结:
链接:https://blog.rust-embedded.org/this-year-in-embedded-rust-2021/
GitHub:https://github.com/rust-embedded/wg
另外,也有一些新的创业公司,比如这个专注于 GUI 的 Sixty FPS,该 GUI 工具库面向全平台,目标之一是取代 Qt。2022 年他们可能要长足支持嵌入式。
链接:https://sixtyfps.io/blog/2021-in-review.html
GitHub:https://github.com/sixtyfpsui/sixtyfps
Rust写Python扩展的9个原则
链接:https://towardsdatascience.com/nine-rules-for-writing-python-extensions-in-rust-d35ea3a4ec29
Superstruct:处理版本化数据
可以使用单个定义来定义多个不同版本的 Struct,并生成一个枚举来统一它们:
use superstruct::superstruct;
# V1
pub struct Request {
start: u16,
}
# V2
pub struct Request {
start: u16,
end: u16,
}
# Superstruct
#[superstruct(variants(V1, V2))]
pub struct Request {
pub start: u16,
#[superstruct(only(V2))]
pub end: u16,
}
#[cfg_attr(test, test)]
fn main() {
let r1 = Request::V1(RequestV1 { start: 0 });
let r2 = Request::V2(RequestV2 { start: 0, end: 10 });
assert_eq!(r1.start(), r2.start());
assert_eq!(r1.end(), Err(()));
assert_eq!(r2.end(), Ok(&10));
}
文档:https://sigp.github.io/superstruct/intro.html
面向对象的Query
支持查询、插入、更新和删除。以查询为例,使用方法如下:
use qoo::base::*;
use qoo::select::*;
fn main() {
let select_query =
SelectBuilder::select(["col0", "col1"].to_vec())
.columns(["col2", "col3"].to_vec())
.from("table1")
.wheres("id >= 100");
assert_eq!(
select_query.to_sql(),
"select col0, col1, col2, col3 from table1 where id >= 100".to_string()
);
}
GitHub:https://github.com/ddddddO/qoo
了解原子和内存排序的工作原理
作者使用一个带有简单单元测试的 repo 增强对这个主题的理解。其中,包含了一个简单例子和一个复杂例子。
GitHub:https://github.com/blasrodri/atomic-story
egui 0.16.0 发布
本次发布的主要内容:
- 阅读原文 https://github.com/emilk/egui/blob/master/CHANGELOG.md
Kira, 一个用于游戏开发的音频库
Kira 是用 Rust 编写的用于游戏开发的音频库,并且具有不太常见的功能,例如平滑的补间参数和声音的精确定时,作者正在用它来制作一个动态生成的音乐游戏。
- Repo github.com/tesselode/kira
一个用于有序集合的比较器 pre-RFC
- Read More https://internals.rust-lang.org/t/pre-rfc-add-comparator-api-for-ordered-collections/15889
社区学习交流平台订阅:
- Rustcc 论坛: 支持 rss
- 微信公众号:Rust语言中文社区