「官方文档」Rust API 指南(api-guidelines)
今天有个Reddit讨论贴,有人指出每个发布到crates.io的crate都应该加上Readme说明和Repository地址(GitHub、GitLab等),以方便用户。
# Cargo.toml
readme = "README.md"
repository = "https://github.com/user/my_awesome_crate"
评论中有人提到Rust官方出品的「Rust API 指南(api-guidelines)」, Rust crate作者应该将它们视为开发Rust库时的一组重要参考因素(非必须遵守)。该指南还在完善中。该指南包含两部分:
Checklist,用于发布crate时快速检查
详细说明,对checklist中的内容做详细的说明
「视频」用Rust实现TCP Part3
我们的老朋友Jon Gjengset,他的视频通常都是5小时左右。
RubyGems将支持带有Rust内置扩展的gem
将添加一个新的构建器CargoBuilder,它将检测Cargo.toml文件并使用Cargo构建gem原生扩展。这减轻了为Ruby用户开发和发布Rust扩展的负担。现在希望找寻贡献者来落实这项计划。
「系列」使用Rust创建静态HTTP服务 Part I
该教程没有使用http等基础crate,而是从零开始构建http 1.0服务,可供学习使用。
hors: howdoi的Rust实现
Howdoi是Go实现的通过命令行获取即时的编程问题解答的工具,hors是它的Rust实现版本。
Snip开源神经网络推理引擎Tract
tract是Snips.ai公司嵌入式自然语言语音处理系统SnipFlow中的重要组件。该公司两年前在TensorFlow Lite出现之前打算将TensorFlow嵌入到库中方便他们执行模型,但是后来因为TensorFlow太过庞大复杂,不得不更改了计划。
新的计划就是使用Rust作为SnipFlow的主要语言,两年过去了,团队已经非常享受现代化软件环境带来的舒适感,而且比TensorFlow更容易交叉编译。
(其实tract上个月就开源了,只是这篇文章最近几天才发布)
rust-py-comp: 使用Rust宏模拟Python的生成器表达式
swirlr-wasm:Swirlr的wasm版本
日报Chaos君向你问好:
(很有意思,小图可以展示的比较清晰,但是放大以后就模糊了,感觉可以用来保护头像隐私)
swirlr可以将采集的图像沿阿基米德螺线路径的采样点渲染SVG。
paw: Rust Cli工作组新工具
为了使Rust开发Cli应用的体验更加一流,更方便地解析命令行参数,官方Cli工作组开发了这个Paw库,目前还是WIP状态。
#[paw::main]
fn main(args: paw::Args) {
for arg in args {
println!("{:?}", arg);
}
}
paw::main
宏允许fn main
接受任何实现paw::ParseArgs trait
的参数,所以,支持将std::env::Args
传递给main
,还允许传递structopt
实例。
假如paw的反响比较好,官方还将走RFC流程,将它引入标准库中。
Rust中的递归迭代问题
问题:
struct Node {
values: Vec<i32>,
children: Vec<Node>,
}
有这样一个结构体Node,它展现了一个树结构:
[1, 2, 3]
/\
/ \
/ \
/ \
/ \
[4, 5] [6, 7]
现在想以递归的方式迭代其根结点和所有子结点的值,以便得到[1,2,3,4,5,6,7]
。
在最初实现碰到挫折之后,作者想到自己实现了一个迭代器来解决这个问题,但不是一个更好的方案。Bad Solution Playground
一个更好的解法:Better Solution Playground
From 日报小组 @Chaos
日报订阅地址:
独立日报订阅地址:
社区学习交流平台订阅: