【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
- 人工智能摘草莓?AI解决农业劳动力短缺?发达国家这样玩!
- mac上如何卸载oracle jdk 1.7
- python自动化测试(六)yaml文件管理数据
- java: ant 脚本示例
- mysql 删表引出的问题
- 修改chrome插件
- cron和crontab
- jboss上的soap web service开发示例
- 微信小程序与新零售相结合引流又出新方法啦!
- JAVA CDI 学习(2) - Scope 生命周期
- JAVA CDI 学习(3) - @Produces及@Disposes
- 3分钟带你学会git向github推送!
- JAVA CDI 学习(4) - @Alternative/@Default/@Any & Extension
- centos6.6 下安装mysql
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- laravel csrf排除路由,禁止,关闭指定路由的例子
- thinkphp框架类库扩展操作示例
- Laravel ORM 数据model操作教程
- Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
- laravel 解决Eloquent ORM的save方法无法插入数据的问题
- laravel框架中控制器的创建和使用方法分析
- php 使用expat方式解析xml文件操作示例
- laravel利用中间件做防非法登录和权限控制示例
- laravel框架中表单请求类型和CSRF防护实例分析
- Yii框架getter与setter方法功能与用法分析
- laravel框架中视图的基本使用方法分析
- laravel5 Eloquent 实现事务方式
- Laravel 微信小程序后端搭建步骤详解
- Laravel使用swoole实现websocket主动消息推送的方法介绍
- Laravel框架Eloquent ORM删除数据操作示例