一封写给Rust宏的情书

#macro

本文不是宏教程,作者写这篇文章的目的就是为了让还没有使用过Rust宏的人,早点尝试一下宏。(真香预警)

作者比较了Rust和其他语言(C/C++/Java)中的元编程,摘要:

  • C宏和Cpp模板元编程。很容易引入难以发现的错误,并且会扰乱编译时间,在构建中引入不必要的复杂性。你是否见过错误使用模板而引发的编译器错误呢?
  • Java注解。Java的注解功能很强大,可以在编译时使用,也可以在运行时执行,既可以用于代码生成,又可以拿来反射。Java中最受欢迎的Spring框架大量使用Java注解。但正因为如此,Java的注解功能导致你写的代码可能超越语言自身的语义,而更像是另外一种语言。而且通过注解实现的代码,调试起来也非常痛苦。

那么Rust的宏是不是完全避免了上面的问题呢?并不是百分百的避免,但是Rust已经努力避免了常见的问题,并且可以发挥出Rust语言自身的优势。作者介绍了声明宏和过程宏的一些优势,并且在文章底部列出了一些学习宏的资料。

Read More


使用Actix Web进行人脸检测

#actix-web #face_detection

这是上次日报里报道过「使用tensorflow与rust人脸检测」文章作者的续篇。在这篇内容里,作者介绍了如何将上一篇文章的成果通过HTTP API来提供。并且作者使用了actix-web = "1.0.0-alpha.4"版本。在mtcnn库的actix-web分支里可以看到具体实现。

这两篇文章是实践性很强的文章,建议大家跟着玩玩。

  • Read More
  • 上篇文章人脸检测Rust库:mtcnn

nom-peg: 基于nom实现的PEG解析器生成器工具

#nom #peg #pest

和pest类似,但它是基于nom实现的。

nom-peg


「视频」深入WASM和WASI

#youtube

Read More


Rust实现的IRC机器人

#irc #bot

url-bot-rs


使用Rust开发跨平台组件的新策略

#FFI #cross_platform

Mozilla工程师最新分享,将Rust实现的核心业务逻辑封装到一个中间层,然后通过新的共享策略,达到Web、iOS、Android三端共享。实施这个策略遇到的一个问题就是如何安全地使用FFI,并且还能与Rust的所有权良好地配合。因此该团队写了一个ffi-support库来帮助达成此目的。

该库最初的实现方案是通过序列化为JSON字符串在FFI中传递。但是缺点是,JSON序列化和反序列化会很慢。最重要的问题是,Java中字符串编码是UTF-16-ish。在Kotlin中,必须反序列化每个数据结构,这个过程会可能会发生异常。最严重的问题是,没有返回JSON字符串,而是某个C指针,忘记更新Kotlin中或者ObjectiveC中的数据结构,导致严重的内存问题。

值得庆幸的是,团队发现了使用Protocol BufferV2替代JSON,可以解决上面的问题。在Rust中直接使用prost库,可以通过Rust的宏生成非常干净的结构。而且,PB比JSON的性能高。

  • Read More
  • ffi-support

「经验之谈」从Nightly到Stable Rust迁移之旅

#nightly_to_stable

本文是Seq团队写的。Seq是一个微服务诊断SaaS产品,它们的存储引擎是使用Rust实现的(应该未开源)。从Seq 5.1开始,迁移到了Stable Rust。整个迁移过程说是毫无痛苦。感兴趣的可以看看。

(开发Rust产品需要依赖的features列表越来越少了,这是好事)

Read More


From 日报小组 @Chaos

日报订阅地址:

  • Telgram Channel
  • 阿里云语雀订阅
  • Stemmit
  • Rust.cc论坛
  • GitHub

【Rust日报】 2019-04-11相关推荐

  1. D2 日报 2019年6月11日

    ? 开源项目 ➡️ sfyc23/EverydayWechat watch 34 star 1690 fork 317 每日自动给女朋友发微信暖心话. github.com ➡️ YMFE/yapi ...

  2. rust主播排行_「Rust日报」2019每周精选 • 第四期

    前言: 从2018年开始,我每天会花1个小时关注Rust社区动态,并且在Rust.CC论坛.tg channel.Steemit.GitHub.语雀订阅都开通了Rust日报,分享我每天的见闻,偶尔也夹 ...

  3. CSDN日报191105:2019年11月全国程序员工资统计,区块链工程师比算法工资高

    CSDN日报来啦!给大家奉上当日最新鲜的技术干货! 2019年11月全国程序员工资统计,区块链工程师比算法工资高 作者:有数可据 我每个月第一天(也许是第二天,第三天),会爬招聘网站,并在CSDN发布 ...

  4. D2 日报 2019年4月11日

    ? 新闻 ➡️ C++力压Python进入最受欢迎编程语言前三 www.infoq.cn ➡️ Opera introduces Reborn 3, the first desktop browser ...

  5. 【Rust日报】 2019-08-12:Tokio alpha 版发布,新版本支持async/await

    Tokio alpha 版发布 #tokio 新版本支持async/await tokio = "=0.2.0-alpha.1" #![feature(async_await)]u ...

  6. ubuntu 12.04/11.10 PPA 安装 Nvidia 295.59

    2019独角兽企业重金招聘Python工程师标准>>> Nvidia 295.59 增加支持以下GPUs: NVS 5400M NVS 310 GeForce GT 620M GeF ...

  7. 2019年11月中国大陆编程语言排行榜

    2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条.针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% ...

  8. 【Rust日报】2020-11-03 《Rust日报》总第1000期

    今日头版 <Rust日报>第1000期,感谢有你 两年半的时间,我们一期期走来,到了今天发行的第1000期.回想我第一次看<Rust日报>,还是在Rust 2018刚推出的时候 ...

  9. 【Rust日报】 2019-08-01:brpc-rs - X-lab 实验室新推出的一个rpc库

    paperclip - OpenAPI 规范的 Rust 实现 在完成后,它会实现: Rust 中的服务器端.客户端和命令行端的高效的.编译时检查的.类型安全的 HTTP API 的生成: 支持处理. ...

  10. 2019年11月全国程序员工资统计,区块链工程师比算法工资高。

    我每个月第一天(也许是第二天,第三天),会爬招聘网站,并在CSDN发布. 趋势 本月全国程序员平均工资为13451元,比上个月略涨. 北上广深杭工资趋势 区块链程序员的工资 职能 工资 系统架构师 2 ...

最新文章

  1. Swift UIAlertView 的使用
  2. 终端安全工具 gartner 排名
  3. 启动Mysql时发生的一个关于PID文件错误问题
  4. 特别完善的面试知识总结
  5. Python小知识 | 这些技能你不会?(三)
  6. IDEA JRebel热部署插件免费使用方法
  7. 利用 LotusScript 灵活操作 Lotus Notes 富文本域
  8. 青蛙跳台(含变种)及汉诺塔递归,母牛生小牛
  9. esp32-智能语音-录音(保存于SD卡)
  10. threading模块的使用
  11. MobaXterm连接Linux教程
  12. windows应用程序签名
  13. 在哪里可以查询中国某一地区的历史气象数据(过去15年,如降雪,降雨等)?
  14. 机器人学导论学习笔记No.1-第一章 :概述
  15. matlab功能特点,MATLAB的特点及应用领域
  16. 简单介绍一下用加速度传感器修正角速度传感器(陀螺仪)累计误差的原理
  17. PS怎么调整字体的行间距
  18. 网络安全等级保护概述
  19. Ubuntu连接WIFI并开启热点
  20. 拆解易鑫2020:担保服务收入猛增,助贷业务营收占比超三成

热门文章

  1. 【Ajax】第一节 初始Ajax
  2. 基于STM32F103移植华为LiteOS物联网系统
  3. P,NP,PSPACE都是什么,一文讲清计算复杂性分类
  4. 记一次让自家旧主板支持M2接口固态硬盘的折腾记录
  5. 基于虚拟同步机的柔性直流输电(HVDC)控制Matlab/simulink仿真模型
  6. 【无人机】基于A星算法实现三维栅格地图路径规划matlab代码
  7. 【 iconfont-阿里巴巴矢量图标库使用】
  8. 大一c语言考试选择题及答案,大一计算机基础期末考试试题「附答案」
  9. HeadFirst设计模式读书笔记--观察者模式(2)(二)
  10. 8分钟完成NodeJs爬虫,把JRS小姐姐全部看个遍