【Rust日報】 2020-02-17 WASM向量圖形 --wasm_svg_graphics 0.3.0
- 2020 年 2 月 21 日
- 筆記
WASM向量圖形 --wasm_svg_graphics 0.3.0
一個用於通過WASM渲染SVG圖形的Rust庫
它提供了快速有效的方法,可以使用WebAssembly與SVG進行交互。它能夠:
- 聲明形狀和樣式以用於這些形狀
- 使用SVG 標籤將這些形狀渲染到DOM
- 自動檢測兩個形狀是否相同,因此只有一個SVG 將添加到DOM中
- 聲明已命名的項目/容器,以便以後進行例如隱藏,重新顯示和重新放置之類的調整。
聲明
開發團隊已測試版本0.3.0的穩定性,並且可以在開發中使用。
此軟體包仍在開發中,但大多數對1.0.0的API調用已完成。如果發現任何錯誤,請在GitHub上提交問題或訴求。
原文請查閱crates.io網站
使用wasm-bindgen-test測試Rust + WebGL渲染器
一周前,作者對改進客戶端程式碼體系結構的所有細節感到有些不知所措,但是從那時起,作者就為所有主要部分布置了數據結構和測試,並對所有組件的安裝方式有了很好的認識一起。
因此,現在正在努力的只是編寫和實施更多測試,直到所有內容都準備就緒。
在進行這種重構方面,似乎需要多花1~2周的時間,然後我們才能重新投入實際遊戲的開發工作中。
- 地形載入和渲染
- 輸入事件處理器系統
- 用戶介面元素
- WebGL渲染器
詳情前往作者部落格查看。
Krabs:可以引導vmlinux的x86引導程式
Krabs是用Rust編寫的實驗性x86 / x86_64引導程式。
Krabs可以引導用bzip2壓縮的ELF格式的內核、解壓縮bz2映像並重新定位ELF映像,然後引導內核。
一些源程式碼使用libbzip2 C庫進行解壓縮,但其餘的完全使用Rust。
Krabs正在致力於在32位/ 64位PC上引導以ELF格式格式化的vmlinux和其他內核,並且正在開發中。
Krabs還旨在僅支援最小的Linux啟動協議。這使您可以指定內核命令行並在啟動時操縱內核的行為。另一個功能是,為了節省空間,ELF格式內核在使用前先使用bzip2進行了壓縮,並使用libbzip2庫進行解壓縮。
下面是一個例子:
$ ./tools/build.sh -k vmlinux -i initramfs.cpio.gz -c "clocksource=tsc" disk.img

工程詳情與構建方法前往GitHub查看。
cow-utils:用於Rust寫入時複製字元串實用程式
一些str方法執行的轉換具有破壞性,因此String即使不需要修改,它們也可以分配,複製並返回新的方法 中。
此軟體包提供了一種具有輔助特性的CowUtils,其中包含此類方法的直接插入變體,它們的行為方式相同,但是在不需要修改時避免額外的副本和分配。
目前,它僅針對&str和返回 實現std::borrow::Cow<str>,但將來可能會擴展到可能進行更有效處理的其他類型(例如,對可變字元串進行就地修改)。
性能
這個箱子的主要動機是在沒有找到匹配的情況下執行零分配替換的功能,因此現在僅顯示.replacevs的結果.cow_replace。
實際結果將根據輸入而有所不同,但這是一個品嘗者,基於"a".repeat(40)輸入和各種模式(不匹配,匹配和替換的所有內容,從開始到刪除的所有匹配項):
參數 | .replace(ns) | .cow_replace(ns) | 區別 (%) |
|---|---|---|---|
("a", " ") | 408.59 | 290.27 | -29 |
(「 b」,「 c」) | 98.78 | 54.00 | -45 |
(「 a」,「 b」) | 985.99 | 1,000.70 | +1 |
關於項目詳情訪問GitHub。
From 日報小組 @Lance

