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]启动服务器了