ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【Rust日报】 2019-04-24:Rust 2019 Roadmap

2021-05-11 09:56:00  阅读:195  来源: 互联网

标签:24 Read futures 2019 设计模式 Rust More


Rust核心团队发布Rust 2019 Roadmap

#roadmap


Rust核心团队最近发布了Rust 2019 Roadmap RFC,主要的工作分为:

  • 治理。改进项目运作方式。包括整理RFC流程。

  • 完成已经开始但还未完成的工作。比如异步等。

  • 提高语言和工具的整体质量。包括改进编译时间和增强IDE支持等。

  • Read More

  • Rust 2019 Roadmap RFC



「官方演讲」Rust:未来四十年的语言

#topic


为什么是四十年?



作者拿铁路百年史做了类比 

1830年5月24日,美国第一条铁路(巴尔的摩—俄亥俄,21公里)通车。1869年5月10日,美国建成第一条横贯美洲大陆的太平洋铁路,总长2849公里。革命性的里程碑,花费了39年。1901年,德国西门子—哈尔斯克电机公司制造的电力机车,在柏林附近的曼菲尔德—措森线上,创造了时速162公里的世界纪录。


这个时间花了71年。


那么系统编程语言呢?


1973年,Unix正式用C语言改写。到2015年,Rust语言发布,是站在C/Cpp语言肩膀上的革命性语言。革命性的里程碑,花费了42年。那么未来四十年,Rust语言会取得什么辉煌成就?拭目以待。


图片

  • Slides

  • gitlab仓库



「官方」HashMap的SwissTable算法重新实现的PR已经被合并

#hashmap


将会在Rust 1.36版本中看到。


该PR作者一共发布过两个PR。第一次是将Swisstable在标准库中重新实现了一遍,第二次是将Swisstable作为独立的hashbrown crate引入标准库中。显然,这次合并的PR是第二种方式。


  • Read More

  • hashbrown



「官方」 Stabilize futures_api的PR已被合并

#stablilize_futures_api


这意味着异步开发离稳定又近了一步。此次Futures API主要是两大模块:

future 模块

  • std::future

  • std::future::Future trait和它关联的项(Output和poll)

task 模块

  • std::task

  • std::task::Poll

  • std::task::Waker

  • std::task::RawWaker

  • std::task::RawWakerVTable

  • std::task::Context

另外还有一些api的名称按照Rust标准库中统一的命名风格被修改。

  • Read More

  • 相关issues


在Google Cloud Run上使用Diesel,Rocket和MySQL部署Rust REST API

#rocket #google_cloud

谷歌最近发布了他们新的Cloud Run服务的测试版,这是一个通过云中的容器运行无状态网络服务器的平台。它结合了无服务器架构和托管容器解决方案(如Amazon的EKS)的最佳方面,使得将无状态Web应用程序部署到云中的过程比以往任何时候都更容易。

感兴趣的可以玩玩

Read More



使用Sonr实现一个简单的chat服务

#sonr


Read More


「嵌入式Rust」embedded-timeout-macros 发布 0.1

#embedded #timeout


rust-embedded-timeout-macros



pijul 0.12发布

#pijul #git


pijul是一个Rust实现的类Git的分布式版本控制工具,发布了0.12版本

Read More



「RustLatam 2019 系列视频」Without Boats: 零成本异步IO

#RustLatam2019


Rustlatam2019大会的视频陆续放出了,此链接是without boats的演讲。大家可以在youtube列表中查看其他的。

RustLatam 2019



rustup发布了1.18.0版本

#rustup


Changelog



「嵌入式Rust」使用DMA传输数据

#dma


DMA(Direct Memory Access),直接存储器访问。


之前都是,CPU参与,一点点把数据,从一个地方拷贝,即像搬家一样搬到,另一个地方。很明显,此时,相对时间比较宝贵(比较值钱)的CPU,把时间,就用在(浪费在)拷贝数据了。所以才出现了DMA,专门去干拷贝数据的累活。DMA是一种无需CPU的参与就可以让外设和系统内存之间进行双向数据传输的硬件机制,它不是独立外设,而是硬件模块支持的机制。


Read More



Futures 0.1 兼容层

#futures


为了弥合由futures 0.1和不稳定的异步生态造成的生态鸿沟,官方异步团队在futures 0.3中引入了futures 0.1的兼容层,本文阐述了如何来使用它。


Read More



「教程」使用Rust创建一个ascii的渲染工具

#ascii


Read More



「系列博客」Rust中让我享受的二三事:Enum

#enjoy_rust


该文作者写了一系列博客,阐述了Rust中他认为很有用的一些特性,本篇是enum,还有其他文章。感兴趣可以看看。


Things I Enjoy in Rust: enum



核反应堆设计模式

#DesignPattern


作者认为,设计模式分为两种层级:低级和高级。像那种流行的设计模式,比如工厂模式之类,属于低级的设计模式。而高级的设计模式,是指整个应用程序的设计哲学。本文主要谈论后者,作者称之为「核反应堆设计模式」。作者使用该设计模式很长时间,并且它不特定于Rust,还可以应用于C/C++和Perl等其他语言。但作者认为,该模式应该在Rust中更受欢迎。


核反应堆设计模式原理


假如你的应用程序中有一个非常难以处理的难题(比如一个事件循环,或者是复杂的数据结构等等),那么你可以单独去解决这个难题,然后在这个难题的核心周围设置一堆API墙,利用这面强将难题核心和其他周围环境隔离起来。也就是说,将难题作为一个独立的整体去思考,而不能让它传播到其他程序中。就像核反应堆一样。


为什么说Rust更适合这种设计模式


  • Rust语言比较吸引那些喜欢硬问题的人。

  • 心理作用。比如Rust就分离了unsafe Rust。

  • Rust的类型系统。可以更加方便地构建「核反应堆」。


有人说,这不就是「封装」吗?难道说,只是把「封装」换了个名字?

并不是。封装只是核反应堆的必要条件。并非每个封装的东西都是核反应堆。


Read More



六个你可能从未见过的有用的Rust宏

#macro


概要:

  • log-derive: 记录函数错误的宏

  • recap: 正则表达式解析库

  • shrinkwraprs:将数据类型重新定义为新的不同类型

  • metered:自动在方法上生成统计信息

  • derive-new:自动实现new方法

  • snafu:提供辅助函数来处理Rust中的错误,帮助增强代码的可读性

Read More


标签:24,Read,futures,2019,设计模式,Rust,More
来源: https://blog.51cto.com/u_15127605/2766527

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有