如何讓IntelliJ在編輯Rust程式語言的時候不自動用extern crate和use關鍵字來引用套件和型別? 2019 年 7 月 16 日 Magic Len 隨手張貼、 Rust IntelliJ的Rust插件在2019/02/14時增加了套件和型別的自動引用功能,在預設的情況下,當我們在Rust程式碼中用到了尚未引用進目前程式的使用範圍(scope)的套件或是型別,並使用自動完成(auto-completion)功能來插入程式碼時,這個Rust插件就會在目前的檔案最上層的部份加入「extern crate」關鍵字或是「use」關鍵字來引用。這個功能會造成開發者很大的不便,... 繼續閱讀
Rocket入門指南 第六章:進階處理HTTP請求(Request)的方式 2019 年 7 月 15 日 Magic Len 研究分享、 Rust 在這個章節中,將會介紹Rocket框架處理JSON和MessagePack請求的方式,以及Rocket框架內建的處理UUID的做法,還有提供靜態檔案(如圖片檔、CSS、JS等等的靜態資源檔)的更好方式。 繼續閱讀
Rocket入門指南 第五章:錯誤捕獲者(Error Catcher) 2019 年 7 月 13 日 Magic Len 研究分享、 Rust 在Web應用程式提供服務時,程式難免會遭遇到一些預期內或是預期外的錯誤,像是客戶端請求的網址沒有路由處理程序能夠處理、請求中的資料格式有誤(例如原本需要輸入數字的地方被輸入成字母文字)、授權逾期,或是資料庫突然連線失敗等,Web應用程式應該都要有能力避免應用程式崩潰(crash),並且照常發送HTTP回應。而Rocket框架當然預設就有處理這些錯誤的能力,開發者甚至可以利用自訂的錯誤捕獲者(Err... 繼續閱讀
Rocket入門指南 第四章:設定Rocket框架 2019 年 7 月 11 日 Magic Len 研究分享、 Rust Rocket的目標是提供一個高彈性和高可用性的組態配置系統,開發者或是系統管理員可以很輕易地對每一個別的設定項目使用環境變數、設定檔或是程式碼來進行設定。 繼續閱讀
如何用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核心... 繼續閱讀
如何使用Rust程式語言進行圖片的資訊查看、高品質縮放、交錯化與格式轉換? 2019 年 6 月 23 日 Magic Len Rust Rust程式語言雖然已經發展了好幾年的時間了,但對於圖片處理還是沒有好用的以純Rust或是純Rust+libc來開發的函式庫,雖然在crates.io上有image這個套件,但它的格式支援度還很有限。因此為了讓Rust程式能夠擁有強大的圖片處理能力,現階段還是必須使其與ImageMagick等歷史悠久的C語言函式庫來進行綁定,才能實現出功能完整且效能優良的圖片處理程式。 繼續閱讀