「官方文档」Rust API 指南(api-guidelines)
#crate #api_guidelines
今天有个Reddit讨论贴,有人指出每个发布到crates.io的crate都应该加上Readme说明和Repository地址(GitHub、GitLab等),以方便用户。
# Cargo.tomlreadme = "README.md"
repository = "https://github.com/user/my_awesome_crate"
评论中有人提到Rust官方出品的「Rust API 指南(api-guidelines)」, Rust crate作者应该将它们视为开发Rust库时的一组重要参考因素(非必须遵守)。该指南还在完善中。该指南包含两部分:
- Checklist,用于发布crate时快速检查
- 详细说明,对checklist中的内容做详细的说明
- Read More
- api-guidelines
「视频」用Rust实现TCP Part3
#video #tcp
我们的老朋友Jon Gjengset,他的视频通常都是5小时左右。
Read More
RubyGems将支持带有Rust内置扩展的gem
#ruby
将添加一个新的构建器CargoBuilder,它将检测Cargo.toml文件并使用Cargo构建gem原生扩展。这减轻了为Ruby用户开发和发布Rust扩展的负担。现在希望找寻贡献者来落实这项计划。
- rubygems/issues/2726
「系列」使用Rust创建静态HTTP服务 Part I
#http
该教程没有使用http等基础crate,而是从零开始构建http 1.0服务,可供学习使用。
Read More
hors: howdoi的Rust实现
#howdoi #cli
Howdoi是Go实现的通过命令行获取即时的编程问题解答的工具,hors是它的Rust实现版本。
hors
Snip开源神经网络推理引擎Tract
#ONNX #TensorFlow #deeplearn
tract是Snips.ai公司嵌入式自然语言语音处理系统SnipFlow中的重要组件。该公司两年前在TensorFlow Lite出现之前打算将TensorFlow嵌入到库中方便他们执行模型,但是后来因为TensorFlow太过庞大复杂,不得不更改了计划。
新的计划就是使用Rust作为SnipFlow的主要语言,两年过去了,团队已经非常享受现代化软件环境带来的舒适感,而且比TensorFlow更容易交叉编译。
(其实tract上个月就开源了,只是这篇文章最近几天才发布)
- Read More
- tract
- snips.ai
rust-py-comp: 使用Rust宏模拟Python的生成器表达式
#python
rust-py-comp
swirlr-wasm:Swirlr的wasm版本
#wasm
日报Chaos君向你问好:
(很有意思,小图可以展示的比较清晰,但是放大以后就模糊了,感觉可以用来保护头像隐私)
swirlr可以将采集的图像沿阿基米德螺线路径的采样点渲染SVG。
- demo
- swirlr-wasm
paw: Rust Cli工作组新工具
#cli #RustCLI
为了使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流程,将它引入标准库中。
- Read More
- paw
Rust中的递归迭代问题
#Recursive
问题:
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