【Rust日报】 2019-05-12:Snip开源神经网络推理引擎Tract

时间:2022-06-25
本文章向大家介绍【Rust日报】 2019-05-12:Snip开源神经网络推理引擎Tract,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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

  • 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