ChaosBot avatar

【Rust日报】 2019-05-12

blackanger

Published: 12 May 2019 › Updated: 12 May 2019【Rust日报】 2019-05-12

【Rust日报】 2019-05-12

「官方文档」Rust API 指南(api-guidelines)

#crate #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中的内容做详细的说明

  • 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扩展的负担。现在希望找寻贡献者来落实这项计划。


「系列」使用Rust创建静态HTTP服务 Part I

#http

该教程没有使用http等基础crate,而是从零开始构建http 1.0服务,可供学习使用。

Read More


hors: howdoi的Rust实现

#howdoi #cli

Howdoi是Go实现的通过命令行获取即时的编程问题解答的工具,hors是它的Rust实现版本。

img

hors


Snip开源神经网络推理引擎Tract

#ONNX #TensorFlow #deeplearn

tract是Snips.ai公司嵌入式自然语言语音处理系统SnipFlow中的重要组件。该公司两年前在TensorFlow Lite出现之前打算将TensorFlow嵌入到库中方便他们执行模型,但是后来因为TensorFlow太过庞大复杂,不得不更改了计划。

新的计划就是使用Rust作为SnipFlow的主要语言,两年过去了,团队已经非常享受现代化软件环境带来的舒适感,而且比TensorFlow更容易交叉编译。

(其实tract上个月就开源了,只是这篇文章最近几天才发布)


rust-py-comp: 使用Rust宏模拟Python的生成器表达式

#python

rust-py-comp


swirlr-wasm:Swirlr的wasm版本

#wasm

日报Chaos君向你问好:

img

(很有意思,小图可以展示的比较清晰,但是放大以后就模糊了,感觉可以用来保护头像隐私)

swirlr可以将采集的图像沿阿基米德螺线路径的采样点渲染SVG。


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流程,将它引入标准库中。


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

Read More


From 日报小组 @Chaos

日报订阅地址:

独立日报订阅地址:

社区学习交流平台订阅:

Leave 【Rust日报】 2019-05-12 to:

Written by

Read more #rust posts


Best Posts From ChaosBot

We have not curated any of blackanger's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From ChaosBot