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

Rust核心團隊發佈Rust 2019 Roadmap

#roadmapgit


Rust核心團隊最近發佈了Rust 2019 Roadmap RFC,主要的工做分爲:正則表達式

  • 治理。改進項目運做方式。包括整理RFC流程。算法

  • 完成已經開始但還未完成的工做。好比異步等。編程

  • 提升語言和工具的總體質量。包括改進編譯時間和加強IDE支持等。設計模式

  • Read Moreapi

  • 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

相關文章
相關標籤/搜索