【Rust日报】 2019-08-12:Tokio alpha 版发布,新版本支持async/await
Tokio alpha 版发布
#tokio
新版本支持async/await
tokio = "=0.2.0-alpha.1"
#![feature(async_await)]use tokio::net::TcpListener;
use tokio::prelude::*;#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {// ...tokio::spawn(async move {let mut buf = [0; 1024];// ...loop {let n = match socket.read(&mut buf).await {// ...}// ...
}
Read More: https://tokio.rs/blog/2019-08-alphas/
如何写全栈Rust代码
#fullstack
这篇文章比较系统的介绍了Yew、ws-rs(websocket)、serde等工具使用Rust编写一个Chat Web App。
Read More: https://www.steadylearner.com/blog/read/How-to-write-Full-Stack-Rust-code
gfx-rs标杆项目开启
#gfx
gfx-rs并不是纯Rust编写。它依赖的一个复杂而重要的组件是用C和C++的混合语言编写的: SPRIV-Cross。它一个着色器翻译库,由 @TheMaister 和一些 Khronos 成员开发,虽然不是 Khronos 的官方产品,但需要它从SPIR-V源生成特定于平台的着色器。它有一个测试套件,它的后端主要由MoltenVK开发和使用。
SPRIV-Cross 在我们的性能报告中出现了很多次(例如在Dota2上)。它的编写方式也与惯用的Rust相去甚远: 代码更喜欢大的可变数据结构,这使得它很难模块化、测试、优化,尤其是在C/C++ FII之后进行交互。虽然它发展很快(就贡献而言),但它在使用高级后端功能方面限定了我们可以做什么和不能做什么,例如内嵌、参数缓冲区等。它使我们的构建过程变得复杂,尤其是在需要单独的Emscripten构建(Rust代码不需要)来生成WASM模块的网络上,成为开发人员和用户的一个痛点。
所以,gfx-rs团队认为,是时候攻克gfx-rs中C++代码的最后一个堡垒了。标杆项目就是关于“飞出墙外的SPIR”(A SPIR that flies above the garden walls,意指,被扔出去了。。。)。这是一个非常复杂的软件,我们还没有取得很大进展。
然而,我们再次感到Rust是着色器翻译工作的最佳工具: 它是关于解析的,处理字节和数据结构,具有进行单元和模糊测试的能力,并且没有外部依赖性。
Read More: https://gfx-rs.github.io/2019/07/13/javelin.html
十年Cpp程序员学了三个月Rust之后的感想
#cpp
文章不长,用作者的话来总结:与其把Rust看作是一门语言,倒不如将其看作是一个生态系统。他对Rust这个生态系统未来的成长感到非常excited。
Facebook用Rust写区块链: Libra
Goolge用Rust写操作系统: Fuchsia
亚马逊用Rust写虚拟化技术: FireCracker
微软推,崇业界都应该使用Rust语言。
看见了吗?四大巨头的未来主要核心业务都交给或准备交给Rust了。
这也是这个10年Cpp程序员开始学习Rust的原因:未来。
Read More: https://blog.aclysma.com/my-first-three-months-with-rust/
「跟进」Rust中模拟高阶类型(HKTs)
#HKT
Read More: https://gist.github.com/edmundsmith/e09d5f473172066c0023ef84ee830cad
「系列文章」用Rust重写物联网网关 Part 3: Safe Rust 如何跳过C/Cpp的陷阱
#IoT
文章里这个类比比较经典(普罗米修斯盗了天火,为世界带来了光明,但与此同时也带来了灾难):
我们本可以用C++重写我们的物联网平台应用。使用C就像用蜡烛照明一样。它的基本属性是众所周知的,它从文明之初就存在了,如果你滥用它,它会让你周围的房子着火。(在这个比喻中,C++将是“所有可以被点燃产生光的东西的集合”。)
该文的作者是智能家居系统公司Dwelo的IoT工程师,该文主要罗列了一些Cpp编写嵌入式应用可能拥有的问题。
这篇文章为系列第三篇。
Part III https://medium.com/dwelo-r-d/designing-around-our-flaws-e0fccd7070af
Cosmic:多功能discord机器人
#discord
该项目是从Python到Rust的一个重写项目
Repo: https://github.com/Sreyas-Sreelal/Cosmic
「社区」Rust游戏工作组的调查
#Game
Rust游戏工作组是社区自愿发起的一个组织,这次他们发起调查,是为了更好地支持Rust游戏开发生态,游戏开发者们可以去参与。
Read More: https://users.rust-lang.org/t/survey-from-the-rust-game-development-working-group/31270?u=erlend_sh
stubborn-io:对tokio的AsyncWrite/AsyncRead进行了包装
#tokio
Docs: https://docs.rs/stubborn-io/0.1.3/stubborn_io/
可以将任何文件进行Hash然后生成一个甜甜圈图案
#wasm
由Rust和Wasm实现
online demo: https://alugocp.github.io/donut/
Repo: https://github.com/alugocp/donut
PodCast:采访Jimmy Cuadra
#podcast
话题关于Matrix,一个开放和分散的通信协议,以及他在Rust中的实现Ruma。该作者之前也出了视频课程,地址在这里:https://youtu.be/76BE1P8B1UU
Read More: https://rustacean-station.org/episode/001-ruma/
Ruma: https://github.com/ruma/ruma
Rust项目中如何在运行时重载配置
#reload
有些程序运行时间很长。对于这些,重启它们来改变配置不是你愿意做的事情。想象一个网络服务器或数据库服务器。这种东西总是处理大量的查询,重启会杀死所有当前正在执行的查询,这会导致最终用户出错,或者由于某些地方的重试而导致性能不佳。
作者的思考:
需要从一个或多个文件中加载配置
需要某种触发器来重新加载配置,然而,使用inotify之类的工具监视配置文件更改的做法不是最佳实践
需要一个手动触发器
unix守护进程约定是向进程发送一个SIGHUP信号,对于命令行应用程序,此信号意味着终端消失了,你可能想要终止它。unix守护进程没有终端,所以它被重用了。在SIGHUP上,守护程序通常会重新加载其所有配置并重新打开日志文件(这是为了与logrotate集成)
推荐使用signal-hook来侦听信号,因为信号一般很容易被错误使用,这个库屏蔽了信号使用的大部分问题。
或者,程序可以通过某种方式发送一些触发重载的RPC命令
配置文件有三种应用场景:初始化/ 每次都需要加载/ 需要主动更改的配置
根据上面的思考,作者开发了Spirit框架。但是该框架还有很多工作要完善。
(目测该框架会对Rust在自动化运维方向起到促进作用)
Reddit 讨论:https://www.reddit.com/r/rust/comments/couwju/runtime_configuration_reloading/
原文:https://vorner.github.io/2019/08/11/runtime-configuration-reloading.html
signal-hook https://crates.io/crates/signal-hook
Spirit: https://github.com/vorner/spirit
From 日报小组 Chaos
日报订阅地址:
独立日报订阅地址:
Telgram Channel
阿里云语雀订阅
Steemit
GitHub
社区学习交流平台订阅:
Rust.cc 论坛: 支持 rss
Rust Force: 支持 rss
微信公众号:Rust 语言学习交流
【Rust日报】 2019-08-12:Tokio alpha 版发布,新版本支持async/await相关推荐
- linux查看采集卡内核,MAGEWELL美乐威Pro Capture系列视频采集卡驱动1.3.0.4186版For Linux(2019年12月10日发布)...
驱动说明 MAGEWELL美乐威Pro Capture系列视频采集卡驱动1.3.0.4186版For Linux(2019年12月10日发布) MAGEWELL Pro Capture系列视频采集卡最 ...
- 微信推出“腾讯QQ”小程序;马化腾又要发红包;GitLab 12.5 稳定版发布| 极客头条...
整理 | 屠敏 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注 ...
- Magento支付宝手机网站支付插件V6.0旗舰版发布,支持在微信中使用支付宝支付,订单重新支付功能!...
2019独角兽企业重金招聘Python工程师标准>>> 功能 严格按照支付宝接口文档编写代码. 支付宝异步通知机制,确保订单状态及时更新,无丢失遗漏. 订单完美对接:支付后即使关掉支 ...
- ios12上滑关闭程序动画_苹果iOS 12.3正式版发布:上滑清除程序动画重新回归
新浪科技讯 北京时间5月14日凌晨消息,今天推送了iOS 12.3正式版,随着苹果和专利官司的和解,苹果原先的上滑清除程序动画在iOS 12.3中重新回归,本次更新大小506.2M,苹果除了继续提高系 ...
- IntelliJ IDEA 2019.1.1 预览版发布,以及对旧版本的更新
百度智能云 云生态狂欢季 热门云产品1折起>>> 虽然 IntelliJ IDEA 2019 年的首个重大更新版本 2019.1 已发布,但 JetBrains 依然惦记着旧版本 ...
- Android 12 预览版发布,64G手机用户:我又活了
[CSDN 编者按]2021 年 2 月 18 日,全球使用人数最多的移动操作系统--Android,正式发布了其最新版本 Android 12 DP1 (Developer Preview 开发者预 ...
- Android 12 预览版发布,64g 手机用户哭了
[CSDN 编者按]2021 年 2 月 18 日,全球使用人数最多的移动操作系统--Android,正式发布了其最新版本 Android 12 DP1 (Developer Preview 开发者预 ...
- Android 12 预览版发布,64G手机用户:我又活了 #IT资讯# #Android# #手机系统#
[CSDN 编者按]2021 年 2 月 18 日,全球使用人数最多的移动操作系统--Android,正式发布了其最新版本 Android 12 DP1 (Developer Preview 开发者预 ...
- Firebug 1.7正式版发布,支持Firefox 4
Firebug 1.7 正式版发布了,同时发布的还有 Chromebug 1.7.0.该版本修复了最后一个beta版的三个bug. Firebug 1.7 最主要的目标是完全兼容 Firefox 4, ...
最新文章
- C++ 通过模版工厂实现 简单反射机制
- linux文件夹加密访问,技术|Linux系统上用encfs创建和管理加密文件夹
- js 获取鼠标在画布的位置_javascript求鼠标在canvas画布里的坐标
- 使用别名访问MSSQL Express
- 如何使用Linux的Crontab定时执行PHP脚本的方法
- 快搜浏览器_opera、Google、firefox三个浏览器的选择
- win10安装ipython_windows10下安装IPython notebook 用来查看.ipynb文档
- 将时间格式的字符串转换成日期类型浏览器兼容解决方案
- php 面试靠快速排序,搞定PHP面试 - 常见排序算法及PHP实现
- python代码规范---PEP8(python enhancement proposal)
- 申请开通微信支付教程
- MQTT5.0新特性(比对3.1.1)
- Vue强制刷新页面重新加载数据方法
- 基于ArcGIS与高分影像进行绿地变化分析
- 代理后域名及Https协议向后传递,后端Spring获取不到问题记录及分析
- 怎么通过麦克斯韦方程组推导出达朗贝尔方程
- mybatis中的Example_Where_Clause
- js一维数组,api,二维数组
- Cocos2d-x + Android + Eclipse + Windows 7
- 天干地支计算公式_天干地支快速查的计算公式
热门文章
- 24小时自助服务终端-税务相关业务
- mysql ignoretable_做Mysql主从时,注意使用replicate_wild_do_table和replicate-wild-ignore-table【转】...
- 【黑马程序员】SpringBoot2学习笔记
- 用友U8采购请购单批量订货界面添加存货档案中字段
- 3D人物建模好学吗?需要怎样的美术基础?
- python字符串怎么排序
- r如何连接oracle,R语言 R两种方式连接Oracle
- 电力-RTU终端ModBus规约(C程序)
- 手机淘宝提升排名的主要权重!!
- javascript中关于全角转换问题!