用Rust開發WebAssembly─第三章:實作康威生命遊戲 2019 年 9 月 13 日 Magic Len 研究分享、 Rust、 Webassembly、 JavaScript 康威生命遊戲(Conway's Game of Life,又稱康威生命棋)是一個模擬生物細胞存活、繁殖與滅亡的遊戲。雖然這個稱為「遊戲」,但它其實不怎麼好玩,它是透過電腦來模擬出一個培養皿空間,這個培養皿中在一開始會被放置一些虛擬細胞,而這些細胞會遵循一些「遊戲規則」來決定其在下一個階段是持續生存、還是要繁殖、抑或是毀滅。藉由圖像化這個培養皿,我們可以從中觀察到一些有趣(?)的圖像。 繼續閱讀
用Rust開發WebAssembly─第二章:將高效能的Rust函式庫套用在網頁上 2019 年 9 月 11 日 Magic Len 研究分享、 Rust、 Webassembly、 JavaScript 在上一章節中,我們有提到WebAssembly比JavaScript的效能還要快很多,但始終沒有舉出一個例子來比較它們實際的效能差異。在這篇文章中,會介紹如何把任意現有的Rust函式庫編譯成WebAssembly,然後移植到網頁瀏覽器上執行,並且比較Rust函式庫做出來的WebAssembly模組以及原生JS模組在網頁瀏覽器上執行的效能差異。 繼續閱讀
用Rust開發WebAssembly─第一章:認識WebAssembly 2019 年 9 月 9 日 Magic Len 研究分享、 Rust、 Webassembly、 JavaScript WebAssembly(簡稱Wasm),是一個安全、可移植(無硬體和作業系統相依)的低階語言(類似組合語言),由W3C制定標準,並由世界四大瀏覽器Mozilla Firefox、Microsoft Edge、Google Chrome和Apple Safari的提供商共同開發,能用來製作高效能且體積小的程式,通常是應用在Web上,但也不限於此。WebAssembly並不是利用新語法來編譯出優化過的... 繼續閱讀
Rust程式的效能測試(Benchmark) 2019 年 9 月 7 日 Magic Len 研究分享、 Rust 開發一個會被重複使用的Rust套件(crate)時,想辦法讓這個套件的執行效能達到最佳化,是一件蠻重要的事情,但是要用什麼樣的方式來驗證程式的執行效能呢? 繼續閱讀
如何在C/C++程式語言中使用Rust的函式庫? 2019 年 9 月 5 日 Magic Len C & C++、 研究分享、 Rust 本站先前有介紹過在Rust程式語言中使用C/C++的函式庫的方式,而在這篇文章中會來談談反過來的作法,也就是在C/C++程式語言中使用Rust的函式庫。 繼續閱讀
如何用Rocket框架實現簡易的授權機制? 2019 年 9 月 3 日 Magic Len Rust 在設計HTTP API的時候,為了使API不被任何人(應用程式)使用,並且可以一定程度地知道發送請求的客戶端是誰,就必須要有個授權機制。 繼續閱讀
如何將Rocket框架用到的Tera模板與Rust程式編譯在一起? 2019 年 9 月 1 日 Magic Len Rust Rocket的「rocket_contrib」套件雖然有提供Template結構體,可以套用Tera模板來回應HTML資料,但是這些模板檔案必須要和程式執行檔分開來儲存才行,所以如果想要實現單檔執行的Web應用程式,就需要靠其它的方式來使用模板引擎。 繼續閱讀
如何將Rocket框架用到的Handlebars模板與Rust程式編譯在一起? 2019 年 8 月 31 日 Magic Len Rust Rocket的「rocket_contrib」套件雖然有提供Template結構體,可以套用Handlebars模板來回應HTML資料,但是這些模板檔案必須要和程式執行檔分開來儲存才行,所以如果想要實現單檔執行的Web應用程式,就需要靠其它的方式來使用模板引擎。 繼續閱讀
如何將Rocket框架回應的靜態檔案與Rust程式編譯在一起? 2019 年 8 月 28 日 Magic Len Rust Rocket的「rocket_contrib」套件雖然有提供StaticFiles結構體,可以直接將它的實體註冊給Rocket,使Rocket能夠提供靜態檔案(如JS、CSS、圖片檔案等),但是這些檔案必須要和程式執行檔分開來儲存才行,所以如果想要實現單檔執行的Web應用程式,就需要靠其它的方式來實作程式。 繼續閱讀
如何用Rocket框架回傳JSON格式的資料? 2019 年 8 月 26 日 Magic Len Rust Rocket的「rocket_contrib」套件雖然有提供Json結構體可以作為路由處理程序的函式的回傳值型別,來回傳JSON格式的資料,但實際用起來卻不是很方便。 繼續閱讀