【Rust日報】 2019-08-28:Rust異步代碼的優勢:相比於其他語言更加容易調試

2021-02-15 Rust語言中文社區
「系列文章」在Rust中使用C庫

#C #FFi

兩篇文章介紹了如何綁定C庫,並且將其抽象為安全的方法調用。

Part I: https://medium.com/dwelo-r-d/using-c-libraries-in-rust-13961948c72a Part II:https://medium.com/dwelo-r-d/wrapping-unsafe-c-libraries-in-rust-d75aeb283c65

使用async/await構建高性能TCP客戶端

#async #await #tcp

作者通過創建了一個TCP客戶端的項目Clobber來體驗將在1.39中穩定的Async/Await的功能,結論:體驗非常好,非常期待Rust異步穩定之後,社區將會帶來什麼變化。

通過AVL樹來理解Rust的所有權

#Elixir #AVL

一個Elixir程式設計師開始學習Rust,在看完Too Many LinkedList之後,進一步實現更複雜的數據結構:AVL樹(自平衡二叉查找樹),以此來學習Rust的所有權機制。

在Rust中使用Tree-sitter解析器生成器

#TreeSitter

TreeSitter是 GitHub 團隊的解析器項目, 目的在於給 GitHub 及 Atom 編輯器提供高效以及跨語言的語法解析支持, 採用 GLR 算法, 支持消歧, 從錯誤中恢復, 增量解析等功能。TreeSitter支持多種語言,且支持增量解析,它的出現降低了自己實現語言的門檻。

該文章簡單介紹了Rust中使用TreeSitter的方法。

Crev的使用教程

#Crev

cargo-crev是一個代碼審查工具,旨在構建信任的生態網絡。但它並不局限於Rust社區,C/Cpp也可以使用。

該工具可以判斷你項目中依賴crate的安全性、質量和發現的問題。可以在公共的git倉庫裡發布可驗證的review信息。通過這種方式期望在Rust生態系統中構建可信任的網絡。將不會有人再受到未經審查和不受信任代碼的困擾。

想想npm因為依賴包出了多少次安全事故。這個工具ms不錯,但是否真的可以解決問題?

Read More: https://wiki.alopex.li/ActuallyUsingCrev

使用Rust進行遊戲開發6個月之後收穫到了什麼?

#game

一位使用Rust開發遊戲的妹紙,最近6個月內使用ggez框架開發自己的個人遊戲項目,這篇文章簡單介紹了她的一些感想,比如如何堅持做自己的項目、ECS很棒之類的。

重點是她之前寫的另一篇文章:24小時遊戲開發,介紹了如何使用ggez框架在24小時內開發一款小遊戲。感興趣的看看吧。

Read More: https://iolivia.me/posts/6-months-of-rust-game-dev/

artichoke: Rust實現的Ruby

#Ruby

兼容MRI。Artichoke core提供了一個與實現無關的Ruby運行時,任何實現都可以加載它。Artichoke core中的運行時將100%通過core和標準庫Ruby規範。運行時將以Rust和Ruby的混合方式實現。Artichoke中的Regexp實現就是這種方法的一個典型例子。

rx:一個Rust實現的可擴展的現代像素編輯器

#PixelEditor

像素編輯器一般用於對小圖片進行編輯製作的工具。

「系列」Rust for OOP系列:閉包

#learning #oop

這位博主打算寫一系列主題是Rust for OOP的文章,主要是針對有一定OOP語言開發經驗的人來學習。已經寫了多篇,本文是關於閉包。

Read More:https://oribenshir.github.io/afternoon_rusting/blog/closures

actix-raft: 基於actix框架實現的raft庫

#raft

Raft是一種分布式共識協議。該作者的目標也是想做分布式資料庫。

Repo: https://github.com/railgun-rs/actix-raft

Rust異步代碼的優勢:相比於其他語言更加容易調試

#async

該文作者通過研究棧回溯信息發現,Rust的異步代碼基於輪詢(Poll)模型,意味著我們總是有「異步調用者」在輪詢期間,等待「異步被調用函數」在棧上完成。這個屬性使得調試異步代碼在Rust中相比於其他語言更加容易。(該文比較了JavaScript中的異步棧回溯信息

Read More: http://fitzgeraldnick.com/2019/08/27/async-stacks-in-rust.html

「視頻」使用Rust擴展Python

#python

演講的重點是:pyo3 和 milksnake

Videos: https://www.youtube.com/watch?v=4h8Ll9_-SZY

PyO3 : https://github.com/PyO3

milksnake: https://github.com/getsentry/milksnake

「思考」對於小的結構體,傳值(By-Copy)還是傳引用(By-Borrow)?

#Struct

這個小小的問題,涉及日常編寫代碼需要考慮的兩個問題:性能 vs 人體工程學

我們是追求性能呢,還是追求代碼的可讀性和維護性等?

該文作者通過大篇幅的討論,甚至深入到C++中探討,得出結論:還是By-Copy吧。至於原因,還需要仔細閱讀他的文章。

Read More: https://www.forrestthewoods.com/blog/should-small-rust-structs-be-passed-by-copy-or-by-borrow/

RACC: Berkeley YACC解析器生成器移植到Rust

#BerkeleyYACC

作者的練手項目

Repo: https://github.com/sivadeilra/racc/

From 日報小組 Chaos

日報訂閱地址:

獨立日報訂閱地址:

Telgram Channel

阿里雲語雀訂閱

Steemit

GitHub

社區學習交流平臺訂閱:

Rust.cc論壇: 支持rss

Rust Force: 支持rss

微信公眾號:Rust語言學習交流

相關焦點

  • Rust 語言入門
    相對於前輩產品(最重要的是 C,它比 Rust 早了 38 年),Rust 是一種較新的語言,但它的血統造就了它的多模式方法。Rust 被視為一種類似 C 的語言,但它包含的其他特性帶來了相較其前輩產品的優勢。首先,Rust 受到了 Cyclone(C 的一種安全方言,一種命令式語言)的重大影響,包含來自 C++ 的面向對象特性的一些方面。
  • Rust 語言常用技巧匯集
    Rust是一種全新系統程式語言,Rust語言立足於編譯時安全,由於沒有其他語言GC附帶,Rust也是一門高性能語言,性能堪比C。最近幾年內,Rust被開發人員廣為採納,是好多年年度最受歡迎語言和開發者最想學習的語言。Rust是最有前途可以替代C/C++的語言之一。
  • 【Rust日報】2020-08-13 關於群集(Bevy)引擎ECS框架中system的語法糖是怎麼實現的
    Learn Wgpu 系列簡化了之前Instancing的教程作者表示之前的Instancing部分寫的太過繁雜,作者喜歡展示各種不同的技術導致之前該章節與之前的章節相比顯得脫節Read More:https://people.gnome.org/~federico/blog/rust-stable-abi.htmldocs.rs 已經更新了文檔覆蓋功能關於構建者模式的一個簡短介紹Read More:https://matklad.github.io/2020/08/12/who-builds-the-builder.html
  • 初學心得 | Rust學習筆記
    作為一種現代程式語言,大量使用了泛型,但是也帶來代碼可讀性較差的問題。相信所有的初學者都會對層層包裹的泛型參數及其限定感到頭痛,可能需要花費一段時間來適應一下。而枚舉類型 Option<T>替代Null,錯誤處理 Result<T,E>也是有特色的地方,然也導致相關的代碼略顯臃腫(個人體會,完成相同功能,Rust 代碼篇幅總是較之 Go 代碼明顯更長)。
  • 為什麼選擇Rust?
    當然,與kernel中數百萬行正常工作的代碼相比,這50個bug根本算不了什麼。但是之前說過的生死攸關的問題,還記得嗎?當我們談到關鍵系統時,即使是最小的錯誤也可能導致災難性的後果。還沒提及這50個只是被發現了的bug。誰知道還有多少沒被發現呢?如果使用Rust,我們會事先知道這些問題。Rust有多快?
  • 【Rust日報】 Rust 2021-穩定性
    文章連結,https://jackh726.github.io/rust/2020/10/01/rust-2021.htmlRust如何使我們監控30k/min的API調用在Bearer,我們是一個多語言的工程師團隊。無論是交流的語言,還是變成的語言。我們的技術棧是由Node.js,Ruby,Elixir,以及我們代理庫支持的所有語言之外的其他語言寫的服務組成。
  • 【Rust日報】 2019-11-15 RustyBox 一個完全用rust重寫的 BusyBox
    RustyBox 一個完全用rust重寫的 BusyBox真的是很猛busybox是linux開發者最常用的一套cmd
  • 【Rust每周閱讀】2019-12-28
    STREAMS CONCURRENCY — 2019-12-21https://blog.yoshuawuyts.com
  • 【Rust日報】 2019-08-10:號外:Rust.cc中文社區尋找線下meetup組織者和參與者​
    如果組織者有其他學習項目,也歡迎分享。每個城市的讀書學習會,並不是孤立的,而是由Rust日報和論壇組來幫助大家分享每周的學習心得。每個同城群邀請我和Mike駐場,作為觀察者,來對大家的學習狀態進行觀察和報導。當然,誰想作為觀察者也可以報名。本著公平自願原則,完全自願組織參加。目前北京回龍觀群友已經在策劃這樣的活動,先嘗試一段時間看看。
  • 【Rust blog】細說Rust錯誤處理
    背景筆者在寫這篇文章時,也翻閱一些資料關於Rust的錯誤處理資料,多數是對其一筆帶過,導致之前接觸過其他語言的新同學來說,上手處理Rust的錯誤會有當頭喝棒的感覺。找些資料發現unwrap()也可以解決問題,然後心中暗自竊喜,運行過程中,因為忽略檢查或程序邏輯判斷,導致某些情況,程序panic,這可能是我們最不願看到的現象。遂又回到起點,重新去了解Rust的錯誤處理。
  • Rust 語言新人入門指南
    如果你來自 Haskell/Ocaml 等函數式語言社區,你會有相當的親切感。對於有豐富 C++ 開發經驗的同學來說,上手可能相對比較容易。了解一般來說,要決定學習一門新語言之前,會先大體了解下這門語言的特點和目前的發展情況。
  • Rust Cookbook 中文版 - Rust 生態中使用各類 crate 來完成編程任務的良好實踐
    《Rust Cookbook 中文版》是 Rust 程序設計語言(Rust 2018 簡體中文版文檔)的簡要實例示例集合:展示了在
  • 【Rust日報】2020-08-15 Rust Nightly 標準庫文檔已涵蓋了每個關鍵字
    詳細可查看這三個連結:標準庫:https://doc.rust-lang.org/stable/std/#keywordsunsafe 關鍵字:https://github.com/rust-lang/rust/pull/73943原始類型關鍵字:https://github.com/rust-lang/rust/issues/34601學習Rust,沮喪?
  • 我們為什麼選擇Rust開發頂尖實時通信產品?|應用程式|代碼|編譯器|...
    可維護性:Haskell、Nim、D 和其他幾種定製語言在工具鏈、社區和人才資源方面不盡如人意。    實際上在我們看來,Rust 是能滿足這些需求的唯一一種可用於生產的語言。  2從 Rust 開始  Rust 的優勢來源於開發社區做出的無數決策。
  • 和C++ 相比,我為什麼要選擇 Rust 來開發軟體?
    作為一門系統程式語言,Rust 一直致力於解決高並發和高安全性系統等問題。和老牌的 C++ 相比,Rust 的性能也毫不遜色。但曾幾何時,因為上手難、用戶量少、社區不活躍等諸如問題讓想要入門的開發者感到迷茫,如今新的一年已經開始,我們是否真的有必要學習 Rust?
  • 【Rust日報】2020-09-25 構建一個Rust運行時反射系統(第一篇)
    構建一個Rust運行時反射系統(第一篇)作者的公司在做一款叫oso的產品,旨在通過提供一門叫Polar的申明式語言,
  • Rust 中的錯誤處理 - Rust 實踐指南
    對於程式設計師來說,錯誤處理的重要性是不言而喻的,貫穿於代碼編寫、開發、調試,以及交付運行的全過程中。
  • Rust負責人承諾將支持Linux作為語言開發優先項目
    原標題:Linux內核討論引入Rust代碼   作為一種現代系統級語言,Rust 比 C 或 C++ 更安全也更容易使用,Linux 內核主要是用 C 開發的,而 Rust 被很多人認為是 C 和 C++ 的最佳替代,那麼 Linux 是否以及如何支持使用 Rust?
  • 都說Rust程式語言難學,那我們Ubuntu系統裡安裝下試試
    近日,程式語言Rust的官方在全球做了一個調查,然後發布了 2020 年 Rust 調查報告。這個又引發大家一陣對Rust的討論。這個曾經很小眾的程式語言,發布以後近些年越來越受開發者和企業的認可。在大型項目底層開發等領域C/C++「一統江湖」的年代,Rust能媲美這兩種底層的強大的語言,實力著實不可小覷。安全、性能、並發等特性的優勢,讓使用過的開發者都讚不絕口,眾口一詞給出肯定的態度。不過與之相應的是,Rust程式語言的學習難度。這個廣受好評的程式語言,其學習門檻之高也廣受大家「詬病」。的確,即便是比較資深的程式設計師,上手Rust都有一定的難度。
  • Rust 語言 2019 調查報告發布:它為什麼流行不起來?
    從 2019 年下半年至今,不到一年的時間內,Rust 語言確實接二連三地掀起過一些波瀾。從微軟探索將 Rust 作為 C 和 C++ 的安全替代方案開始,Rust 吸引了越來越多的目光:內核維護者表示願意接受用 Rust 開發 Linux 驅動;AWS 也伸出橄欖枝,宣布贊助 Rust;微軟更進一步,在今年年初開發並開源了受 Rust 啟發的新程式語言 Verona;最近,蘋果也站出來擁抱它,將 C 代碼移植到 Rust。