1. 我們為什麼用Rust
Rust 是一門系統級編程語言,被設計為保證內存和線程安全,防止段錯誤產生。作為系統級編程語言,它的基本理念是 「零開銷抽象」。理論上來說,它的速度與 C/C++ 同級。Rust 可以被歸為通用的、多範式、編譯型的編程語言,類似 C/C++。與這兩門編程語言不同的是,Rust 是線程安全的!Rust 編程語言的目標是,創建一個安全和並發的軟體系統。它強調安全性、並發和內存控制。盡管 Rust 借用了 C/C++ 的語法,卻杜絕了空指針和懸掛指針,而這二者是 C/C++ 中系統崩潰、內存泄露和不安全代碼的根源。
雖然 Rust 是一門系統級編程語言,但並不意味著它只能寫底層程序(操作系統、驅動、工具、資料庫、搜索引擎等),它的抽象層次之高完全給人驚艷的感覺,實踐證明它對問題建模的能力和方便性不比 C++/Java/Python/Ruby 差。但 Haskell 這類超高抽象語言,也不是 Rust 的發展方向。Rust 力求在抽象與現實世界中找到一個平衡。
在向SCRY 項目研發負責人Peace交流時,他說到,當時選擇Rust,主要有兩個原因:一是有高性能要求時,原來好多人會選擇C/C++,現在多了一個Rust選擇,還解決了C/C++許多不足;二是Rust應用在區塊鏈有成熟的參考。最後Peace給了未來使用SCRY項目開源部分的學習者一些建議,「快速的學習能力,快樂地把小事做好,正確合理定義一個函數。」
Rust到底有多受歡迎呢?目前,Rust 已經在 StackOverflow 的年度語言評選中,連續 4 年榮獲「程序員最喜愛語言」第一名(2016, 2017, 2018, 2019)。以下是 2019 年調查的截圖:
但比起Python、C、C++ 等,Rust還只是個小年輕。調查顯示,更多的人不去學習 Rust 還是因為 Rust 沒有足夠的活躍商業項目讓它成為企業的一部分。
不過,Rust 在工作中的佔比也越來越高。過去一年間,Rust 在商業應用上有著令人驚訝的成長。下面是部分人們熟知的公司:
國內的網路,阿里,也已經在內部小范圍的使用上了Rust。
就在本月初,微軟還推出了基於 Rust 的 Windows 運行時項目 Rust/WinRT。該項目和 C++/WinRT 一脈相承,用標准語言和編譯器為 Windows 運行時構建語言投影,從而方便 Rust 開發人員調用 Windows API,更輕松地使用 Rust 構建各類 Windows 應用和組件。
(https://blogs.windows.com/windowsdeveloper/2020/04/30/rust-winrt-public-preview/)
2015年下半年,Gavin Wood 博士創立了 Parity Technologies,推出以太坊(Ethereum)客戶端 parity,而這個 parity 客戶端就是使用Rust寫的。實際在 parity 出現之前,MaidSafe項目就已經出現了。MaidSafe用 Rust 語言嘗試了很多東西。Rust語言本身強調的安全性以及MaidSafe這些前沿項目,可能給了 Gavin 充分的理由選擇 Rust 作為 parity 開發語言。
寫一個有效率的、符合習慣的Rust程序比寫一個有潛在亂信危險的程序容易得多。下面是linux內核在2018年一月到四月期間發現的bug:
而對於Rust而言,上圖右側佔比 51% 的告蘆部分,從語言層面就可以避免。也就是說,對Rust來說,根本不存在上圖右邊這些問題。
Rust在實現內存安全和並發安全的同時,並沒有以損失性能為代價。更牛逼的是,它甚至是用同一套抽象解決了內存安全和數據競爭這襪陪帶兩個不同領域的問題。
Rust的零開銷抽象讓你在享受安全性的同時,又不損失性能。這正是傳統的程序員夢寐以求的。
Solana的首席執行官Anatoly Yakovenko在一段采訪中提到剛開始項目的時候,他用了兩周時間使用C語言,但是當用到一些外部庫的時候,還得寫makefile,手動下載這些庫,比較麻煩。所以,他決定嘗試一下Rust。就在那一刻,「Holy shit, this is amazing.」「我才覺醒到,這是一個和C語言一樣快的語言,並且還給了我Haskell般的類型安全。Rust擊中了我,這真的很酷。」
今天Rust滿5歲了(2020年5月15日,是Rust語言正式發布5年生日)。Rust語言正在IT工業各個領域快速發展,而由於區塊鏈本身的特質,區塊鏈領域是較早接納Rust的領域之一。在區塊鏈領域,Rust正以勢如破竹之勢佔領區塊鏈新興項目市場,很多著名的老項目也在考慮轉向使用Rust重寫。
祝Rust 5周年生日快樂!
參考:
1. Why Rust?
https://www.parity.io/why-rust/
2. Meetup with Solana, Zcash, & Parity — Why Rust Is Ideal For Blockchain Development?
https://medium.com/solana-labs/solana-at-portland-dev-meetup-72e4dc7ad32c
3. Rust 2017 Survey Results
https://blog.rust-lang.org/2017/09/05/Rust-2017-Survey-Results.html
4. 微軟開源 Rust/WinRT,方便使用 Rust 構建 Windows 應用
https://www.oschina.net/news/115354/microsoft-winrt
5. Stack Overflow』s Developer Survey Results 2019
https://insights.stackoverflow.com/survey/2019#developer-profile-_-what-inpial-person-will-have-the-most-influence-in-tech-this-year
6. 當區塊鏈遇上Rust
https://rustcc.cn/article?id=289da7be-19ce-49fe-af6d-3a7946404ca6
2. rust怎麼租伺服器
一、伺服器需求配置
假設rust伺服器,內存要4G起步,如果你想安裝很多的插件,想要支持更多人遊玩,又或者想用超大地圖,那麼內存就8G起步,最好就是16G左右。玩小地圖,不裝什麼插件的話,1核4G可以起步開始玩。
二、開始配置雲伺服器
①安裝系統
不管你在哪裡租用購買伺服器,第一步都是需要安裝一個系統,初級配置的話推薦大家使用centos或者ubuntu之類的linux系統,因為linux少了很多不必要的東西,比如圖形界面等等。如果配置高的話,也可以直接上windows,因為windows很臃腫,所以對配置要求高。
系統安裝完成以後,修改伺服器密碼,然後關機。
②配置埠
開放連接rust伺服器的埠:28015,採用udp協議;還有RCON管理埠28016,採用TCP協議即可。埠配置好以後就可開機了。
③用Xshell連接伺服器
輸入公網IP,然後用22埠連接SSH,接著輸入賬號密碼即可,如果不會用可以網路搜索一下。
登錄以後切換到root賬戶,輸入cd就可以返回到root賬戶的根目錄了,接著第一件事就是更新軟體源。如果你不是root賬戶的話,記得在前面加上sudo。
③開始部署
用steamcmd手動部署伺服器或者Linux Game Server Managers,簡稱LGSM。它不僅集成了steamCMD,還集成了一些非常強大的功能。
在安裝LGSM之前,我們需要安裝一些依賴,復制這段命令到Xshell之後,我們需要在後面再添加一個依賴,回車之後就開始安裝依賴了。
接下來會出現steamCMD的一些使用條款,按TAB切換到OK,接受條款並繼續。
裝好以後,新建一個叫rustserver的用戶,設置一下密碼,其他回車就好,採用默認設置。
接下來我們切換到rustserver的用戶,切換好以後就可以開始安裝LGSM了,安裝好以後就可以開始安裝rustserver服務端了,大概4GB左右。最後提示是否安裝成功,輸入Y然後回車。
接下來把Y改成N按回車鍵繼續,完成以後rust伺服器已經安裝好了。
④配置伺服器參數
開始運行之前,需要配置一下伺服器各類參數,復制圖中段落,用nano命令打開編輯server.cfg這個文件,修改伺服器描述簡介,編輯完成後按住Ctrl+o保存,按ctrl+x退出,接下來復制這一段路徑,cd這個路徑進入文件夾。然後ls列出文件夾,接下來cat rustserver.CFG,復制一份_default。cfg的默認設置到這里覆蓋掉。
接下來就可以修改rcon的密碼了、伺服器的名稱、最大的玩家數量、種子地圖是隨機地圖,隨便輸入一個數字就可以了。
修改完以後保存退出,然後cd返回根目錄。
⑤安裝OXSIDE
接下來安裝oxide插件,輸入rustoxide就可以安裝了,一切准備好以後就可以[./rustserver start]啟動伺服器了