【Rust日報】2020-09-25 構建一個Rust運行時反射系統(第一篇)

2021-02-19 Rust語言中文社區
構建一個Rust運行時反射系統(第一篇)作者的公司在做一款叫oso的產品,旨在通過提供一門叫Polar的申明式語言,方便用戶編寫策略文件和用戶自身應用邏輯解耦來解決authorization的問題。官方提供了不同語言的庫來解析這些策略,作者打算寫三篇文章來分享他們在用Rust解析的時候涉及到的動態反射的問題,以及他們的解決方案。為了方便大家了解它們的Polar語言,我在他們官網摘了一小段:

allow(actor: String, "GET", _expense: Expense) if
actor.endswith("@example.com");

連結:https://www.osohq.com/post/rust-reflection-pt-1Building even faster interpreters in Rust作者在Cloudflare實習,其中一部分工作是用Rust給防火牆規則(Firewall Rules )編寫匹配引擎,這篇文章裡面作者分享了他在這一方面的優化經驗。連結:https://blog.cloudflare.com/how-we-made-firewall-rules/robotstxt -- Google的robotstxt Rust版Robotstxt 是小編自己把Google的robotstxt解析庫port到rust了,並且用FFI的方式跑通了C++的測試用例。連結:https://github.com/Folyd/robotstxt-- From 日報小組 Folyd,broono

相關焦點

  • 【Rust日報】 Rust 2021-穩定性
    這可能很明顯,也可能不明顯,這是我的第一篇博客文章。我不想過多地減損這篇文章的內容,但我認為至少有必要對我為什麼要寫這篇文章做一個簡短的解釋。這是對2021的Rust call for blog的一個回應。現在,我確實是traits工作組的負責人之一。並且在過去一年裡,對Chalk做出了很大的貢獻。但是,我要聲明的是,我在這篇文章中提出的觀點是我自己的,我在這裡不是以任何「官方」的身份說話。
  • 【Rust日報】 2019-08-28:Rust異步代碼的優勢:相比於其他語言更加容易調試
    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
  • 【Rust日報】2020-03-10 - A C# programmer 嘗試 Rust - Part 1
    構建私源( a private 『single source of truth』 )的幾個優點,他寫了:Can be managed, secured and controlled in a systematic wayIs available to teams and individuals within the organization anywhere
  • 【Rust blog】細說Rust錯誤處理
    當然,在寫這篇文章之時,也借閱了大量網際網路資料,詳見連結見底部參考連結掌握好Rust的錯誤設計,不僅可以提升我們對錯誤處理的認識,對代碼結構、層次都有很大的幫助。那廢話不多說,那我們開啟這段閱讀之旅吧:D!
  • 【Rust日報】2020-08-13 關於群集(Bevy)引擎ECS框架中system的語法糖是怎麼實現的
    一個普通的Rust函數在調用.system()這個方法之後,將被轉換為一個Box<dyn System>,對於群集支持的兩種系統,採用IntoForEachSystem和IntoQuerySystem這兩個trait進行轉換。
  • Rust Cookbook 中文版 - Rust 生態中使用各類 crate 來完成編程任務的良好實踐
    目前完成第一版本,部署在 https://rust-cookbook.budshome.com。超過 150+ 的實踐案例,範圍涵蓋:算法、命令行處理、壓縮、並發/並行、密碼學、數據結構、資料庫、日期及時間、開發工具/調試工具/版本控制/構建工具、編碼、錯誤處理、文件系統、硬體支持、內存管理、網絡、作業系統、科學計算、文本處理、web 編程/伺服器/客戶端、數據萃取、URL 解析處理,以及媒體類型等各方面場景實踐。
  • 【Rust日報】 2019-11-15 RustyBox 一個完全用rust重寫的 BusyBox
    RustyBox 一個完全用rust重寫的 BusyBox真的是很猛busybox是linux開發者最常用的一套cmd
  • Rust 語言常用技巧匯集
    Rust是一種全新系統程式語言,Rust語言立足於編譯時安全,由於沒有其他語言GC附帶,Rust也是一門高性能語言,性能堪比C。最近幾年內,Rust被開發人員廣為採納,是好多年年度最受歡迎語言和開發者最想學習的語言。Rust是最有前途可以替代C/C++的語言之一。
  • 【Rust日報】2020-11-21 使用 const 泛型的物理單位
    使用 const 泛型的物理單位 就像一個具有更好的錯誤消息的 uom! #!(mutable_distance,5.0* m); crate 連結,https://docs.rs/const_unit_poc/1.0.0/const_unit_poc/ Knurling-rs Knurling-rs,是用於開發和調試用於嵌入式系統的 Rust 軟體。
  • AWS偏愛Rust,已將Rust編譯器團隊負責人收入囊中
    在這篇文章中,AWS 表達出了對 Rust 語言的熱情,並列舉了自身利用 Rust 語言的數種方式。文章作者 Matt Assay 寫道,AWS「越來越多地使用 Rust 語言來構建像 Firecracker VMM 這樣的關鍵基礎設施,這是因為 Rust 語言的開箱即用(out-of-the-box)特徵減少了達到亞馬遜高安全標準所需的時間和精力,同時依然能夠提供類似於 C 和 C++ 的運行時性能。
  • 【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?
    然而,擁有一個形式系統來證明我們的代碼是正確的(至少在某些方面是正確的)則是另一回事了。Rust的方式「Rust作為一種程式語言」的不同之處,不是因為它的花哨語法或受歡迎的社區,而是因為人們在使用它編寫程序時能獲得信心。Rust非常嚴格並且追究細節的編譯器會檢查你使用的每個變量和引用的每個內存地址。
  • Rust 語言入門
    ', panic.rs:2:46// note: 使用 RUST_BACKTRACE=1 運行,以便實現反向跟蹤。從輸出可以看到,Rust 運行時準確指出了發生問題的位置(第 2 行),而且發出了所提供的消息(它可以發出更多描述性信息)。輸出消息表明,您可以使用名為 RUST_BACKTRACE 的特殊環境變量來運行,以便生成一個堆棧反向跟蹤。
  • Rust 的第一印象
    這篇文章不談具體的語法,主要從總體上介紹下 Rust,更確切說是 Rust 給我的第一印象,文章(包括後續 Rust 的文章)會和 Go 對比著來,方便 Go 朋友們一起學習、交流。01 官網對於中國開發者來說,我認為 Rust 的官網相比 Go 官網至少有兩大優勢:官網中文版:https://www.rust-lang.org/zh-CN/,而 Go 語言官網的中文版呢?殘缺不全,不權威,不是核心團隊組織領導弄的。
  • VS Code 搭建 Rust 開發環境
    rustrustprintln!("Hello VS Code!");然後編譯並運行查看輸出結果。rust在控制臺輸入 rustc rust_hello_world.rsrustrust運行可執行文件 rust_hello_world.exe 查看結果
  • Rust 中的錯誤處理 - Rust 實踐指南
    對於此等重要的工作,Rust 生態中特別有一個 crate error-chain 對錯誤處理在 Rust 標準庫之上給予了支持。本文我們通過在 main 方法中對錯誤適當處理、避免在錯誤轉變過程中遺漏錯誤、獲取複雜錯誤場景的回溯三個方面來了解 crror-chian crate。
  • 【Rust日報】 2019-08-10:號外:Rust.cc中文社區尋找線下meetup組織者和參與者​
    根據 Reddit 上的問答整理的:https://docs.qq.com/doc/DQll1bmZPclJ2UGZTjsonrpc-v2 - 又一個JSON-RPC輪子作者又造了一個輪子,因為他用其它JSONRPC的時候,有一點不順心,所以就換自己喜歡的組合封裝了一個新的庫,感興趣的可以了解。
  • 腐蝕rust閃退怎麼辦 腐蝕rust程序退出解決方法
    很多玩家在進入腐蝕rust遊戲時彈出了應用程式退出的窗口,這裡帶來一位玩家分享的解決方法,希望對大家有所幫助。 問題 在進入遊戲時彈出了下面這個窗口,該如何解決呢?
  • 【譯】對Rust中的std::io::Error的研究
    如果DepError是MyError的一個變體(variant),那麼可能會需要一個運行時的 match。這種想法的一個極致版本是san-io[4]編程。對於很多來自 I/O 的錯誤,如果你把所有的 I/O 錯誤都推給調用者,你就可以略過大多數的錯誤處理。
  • Rust 語言新人入門指南
    這時,建議看Rust 官網  https://rust-lang.orgRust Force  https://rustforce.net  Rust 基本要素匯集Rust 語言中文社區論壇   https://rust.cc《Rust語言學習交流》公眾號,每日 Rust 新聞和知識推送知乎  有很多關於 Rust 相關的知識、專欄