如何用Rocket處理multipart/form-data的資料? 2019 年 7 月 9 日 Magic Len Rust 在開發Web應用程式的時候,我們常會需要透過POST請求來取得客戶端上傳的檔案資料,這時候的HTTP主體通常就會使用「multipart/form-data」格式。然而,Rocket框架並未原生支援「multipart/form-data」的資料,但使用起來限制重重,不太方便。所以這篇文章會介紹一個替代方案來處理「multipart/form-data」的資料。 繼續閱讀
Rocket入門指南 第三章:HTTP回應(Response) 2019 年 7 月 7 日 Magic Len 研究分享、 Rust 到目前為止,我們已經知道一個路由處理程序的函數可以選擇不回傳任何值,或是選擇回傳一個字串或一個字串切片。在這篇文章中,將會介紹Rocket框架所提供的多種不同的型別,來讓我們的路由處理程序能夠回應(respond)更多類型的資料。 繼續閱讀
Rocket入門指南 第二章:路由(Routing)與請求(Request)的處理 2019 年 7 月 5 日 Magic Len 研究分享、 Rust 一個Web框架最基本的功能除了提供HTTP伺服器之外,還需要進行HTTP請求(request)的路由(routing)。Rocket在這方面套用了Rust程式語言提供的程序式巨集功能,使我們可以很簡單地使用「get」、「put」、「post」、「delete」、「head」、「patch」和「options」等屬性來快速做出屬於該HTTP請求方法的路由處理程序(handler)。另外,我們也可以在... 繼續閱讀
Rocket入門指南 第一章:認識Rocket Web框架(Web Framework) 2019 年 7 月 1 日 Magic Len 研究分享、 Rust Rocket是一個使用Rust程式語言的Web框架,在伺服器端運行,任何人都可以用它來輕易地開發出高彈性、高可用性以及擁有型別安全特性的Web應用程式。這個系列文章將會帶您一步步了解Rocket框架的使用方法。 繼續閱讀
Rust的原子(Atomic)型別與記憶體順序(Memory Ordering) 2019 年 6 月 29 日 Magic Len 研究分享、 Rust Rust程式語言在1.34之後的版本中開始正式提供完整的原子(Atomic)型別了。所謂的原子是指一系列不可被上下文交換(Context Switch)的機器指令,這些機器指令組成的操作又稱為原子操作(Atomic Operation)。在多CPU核心的環境下,當某個CPU核心開始執行原子操作時,就會先暫停其它CPU核心對記憶體的操作,以保證在原子操作執行的過程中,記憶體內容不會受到其它CPU核心... 繼續閱讀
mprober 同時支援命令列介面(CLI)和網頁介面,並提供HTTP API的Linux伺服器探針 2019 年 6 月 25 日 Magic Len Linux、 作品分享、 網路相關、 網站應用、 軟體介紹 自從筆者接觸Rust程式語言以來,大大小小的程式都是使用Rust程式語言來進行開發。在Web伺服器管理方面,由於伺服器環境已經不再需要安裝PHP、Node.js、Python等網站相關套件,因此也沒有一個好用的、可在本機或是遠端偵測伺服器狀態的工具能夠使用,索性就自己用Rust程式語言來開發一個追求效能,並針對Linux伺服器來運行的探針──M Prober(MagicLen Prober)。 繼續閱讀
如何使用Rust程式語言進行圖片的資訊查看、高品質縮放、交錯化與格式轉換? 2019 年 6 月 23 日 Magic Len Rust Rust程式語言雖然已經發展了好幾年的時間了,但對於圖片處理還是沒有好用的以純Rust或是純Rust+libc來開發的函式庫,雖然在crates.io上有image這個套件,但它的格式支援度還很有限。因此為了讓Rust程式能夠擁有強大的圖片處理能力,現階段還是必須使其與ImageMagick等歷史悠久的C語言函式庫來進行綁定,才能實現出功能完整且效能優良的圖片處理程式。 繼續閱讀
Image Interlacer 批量交錯化常見的網路圖片格式 2019 年 6 月 15 日 Magic Len 作品分享、 軟體介紹 在撰寫網頁內容的時候,時常會需要在網頁上放置圖片。然而,圖片的資料量比文字內容還要大得多,也會需要比較大量的時間來進行網路傳輸。網頁瀏覽器會在圖片傳輸的過程中,一邊在取得圖片資料的同時,一邊把已取得的圖片資料解碼並顯示出來。在一般的情況下,圖片資料的順序是從左到右從上到下的,也因此網頁瀏覽器在下載並顯示圖片時,會是從上到下來顯示。如果圖片很大,網路頻寬不夠的時候,這張圖片可能會需要好幾秒才能下載好... 繼續閱讀
如何使Rust程式語言的starts_with和ends_with方法忽略大小寫? 2019 年 6 月 13 日 Magic Len Rust 在開發程式的時候我們時常會需要判斷某個字串的開頭或結尾是否符合某個字串,例如判斷網址是否以「http」或是「https」開頭時,或是判斷檔案名稱是否以「.jpg」或是「.png」結尾時。然而在上述提到的例子中,通訊協定或是檔案副檔名都是可忽略大小寫的,Rust程式語言雖然有提供eq_ignore_ascii_case方法,卻沒有提供starts_with_ignore_ascii_case和end... 繼續閱讀
如何使用Rust程式語言進行快速的字串或是任意資料的搜尋? 2019 年 6 月 11 日 Magic Len Rust 在一篇很長的文章或是一大串文字中找出自己想看到的段落是我們時常會需要做的事情,但是要如何有效率地讓電腦尋找文字中的文字是一件需要思考的事情,甚至有許多針對這個議題所提出的研究論文。字串搜尋演算法的好壞,在複雜的文件內容下,對搜尋時間的影響是非常深遠的。字串搜尋除了能夠正確搜尋一段文字內的特定字串外,還可以用來搜尋龐大的任意資料,因為任何的資料都可以藉由數位編碼轉成只有數字的字串,如一段原始的聲音,... 繼續閱讀