如何在MSYS2中編譯Rust程式? 2018 年 12 月 16 日 Magic Len 研究分享、 Rust Windows作業系統中的Rust程式,預設會使用MSVC來編譯的。但是如果Rust程式有使用到GNU相關的函式庫(例如GTK)時,就得搭配MinGW來編譯了。MSYS2是一套整合MinGW和POSIX環境的工具,可以在Windows作業系統上模擬出Linux作業系統的開發環境,且能利用MinGW直接編譯出在Windows作業系統上執行的程式。 繼續閱讀
擴充Rust程式語言內建的HashMap,讓它擁有階層結構 2018 年 12 月 9 日 Magic Len Rust 在開發程式時,我們常會使用HashMap來儲存key-value結構的資料。但很多時候我們的key-value資料會有不只一層,例如一個男女分班的學校,我們就需要有性別、班級、學號這三層的key-value結構,以確保各層的資料不會有重複的情況發生。或是可以分成國家、一級行政區、二級行政區等多層資料的世界地圖。 繼續閱讀
如何讓Writer能在不同執行緒下同步寫入,且能夠拿回擁有權?實作同步版本的RcWriter吧! 2018 年 12 月 3 日 Magic Len 研究分享、 Rust 在之前關於「RcWriter」的文章中,我們將Rc智慧型指標和「Writer」一同連用,讓「Writer」的擁有權在被其他套件搶走之後還可以有辦法繼續使用同樣的「Writer」。但如果是在並發與並行的程式中,「RcWriter」就無用武之地了。 繼續閱讀
Writer的擁有權被拿走後要怎麼拿回來?用Rc智慧型指標來製作RcWriter吧! 2018 年 12 月 1 日 Magic Len 研究分享、 Rust 在開發Rust程式的時候,會使用到各式各樣別人開發的套件。這些套件雖然很方便,可以替我們節省不少開發時間,但是套件提供的API,卻不一定能夠完全滿足我們的需求。「Writer」的擁有權被取走,就是一個常見的例子。 繼續閱讀
如何使用Rust程式語言取得WHOIS資料? 2018 年 11 月 28 日 Magic Len Rust WHOIS是網際網路中用來查詢網域名稱和IP的服務,可以讓我們在連結到對方的伺服器前,先行確認對方究竟是誰(沒錯,就是Who is ...?),避免連線到不安全的伺服器。在開發Rust程式的時候,也可以利用WHOIS來做對外連線的檢查。 繼續閱讀
如何在Rust程式語言中處理網址的前綴? 2018 年 11 月 25 日 Magic Len Rust 在開發Web應用程式的時候,為了要讓應用程式可以被設定在不同網域,或是不同的網址目錄下,通常會需要對應用程式進行「網址前綴」的設定。舉例來說,如果要把某個Web應用程式運作在「tool.magiclen.org」這個網域的「url」路徑下,我們可以將「https://tool.magiclen.org/url」這個「網址前綴」設定給該Web應用程式,讓它知道如何去正確處理它所用到的其它資源的路徑。... 繼續閱讀
如何用Rust程式語言驗證使用者輸入的資料? 2018 年 11 月 24 日 Magic Len Rust 開發程式的時候,常會需要讓程式能與使用者或其它程式互動,透過文字介面、圖形介面或是通訊協定標準,從外部取得資料來進行更進一步的處理。尤其是當使用者在使用我們的程式時,由於我們沒有辦法限制他們輸入的資料一定要符合程式設計的格式,程式很可能就會因錯誤的輸入而造成錯誤的輸出,甚至對整個系統的安全性造成威脅。所以通常我們在處理外部進來的資料時,會先檢查它們的格式後再進行處理。 繼續閱讀
如何用Rust程式語言進行大量資料的Base64編碼? 2018 年 11 月 21 日 Magic Len Rust Base64是一種能將任意Binary資料用64種字元組合成字串的方法,而這個Binary資料和字串資料彼此之間是可以互相轉換的,十分方便。Base64通常會用在小量資料上,因此可以完全將資料放在主記憶體中處理。但如果遇到大量資料時該怎麼辦呢? 繼續閱讀
如何在Rust程式語言中輕鬆用斜線串接字串? 2018 年 11 月 19 日 Magic Len Rust 在開發程式的時候常常會需要處理檔案路徑或是URL網址的串接問題,如果字串是從使用者端輸入的,由於不同使用者的習慣不同,可能有人習慣在檔案目錄路徑或是網址前面後面多加斜線,也可能有人習慣不加。如果程式是設計成要用某個使用者輸入的字串當作前綴,去串接其它的字串來組成檔案路徑或是網址的話,那麼前綴是不是以斜線結尾的影響就很大了。例如使用者輸入了「path/to/folder/」這樣的檔案目錄路徑,然後程... 繼續閱讀
ShortCrypt─在Rust和網頁瀏覽器上實現資料加解密,並且能夠互通的函式庫 2018 年 11 月 17 日 Magic Len 研究分享、 Rust、 JavaScript 在開發程式的時候,我們可能會需要隱藏敏感的資料,讓一般使用者不會直接看到,例如流水序號、密碼、網頁Cookie等。這樣的資料通常都很小,可能只有數個位元組,但如果使用AES/DES加密,密文(也就是加密後的資料)都至少有16個位元組以上!實在不太適合用來加密這樣的少量資料。 繼續閱讀