Rust能不能做后端开发语言?
文章插图
背景图片 来自 Markus Spiske on Unsplash
ProjectX只是现在我在做的一个项目的名称 , 我计划在整个项目的过程中做更多的尝试 , 并且尽可能的将过程记录下来 。 如果感兴趣可以关注我 , 非常欢迎给我或是ProjectX提提你的建议 。
这次ProjectX在选择后端开发语言的时候 , 我不会考虑我自己的熟悉程度和之前的积累 , 希望可以比较客观的选择一个适合的后端语言 , 我也可以通过这个过程了解更多后端语言 。 目前计划尝试的后端语言有:PHP、JAVA、Node.js、Go、Rust、Ruby、Python 。 没有案例的分享都是耍流氓 , 我用这几个语言统一做一个简单的数据查询返回的API接口 , 来从服务器支持、开发环境搭建、RESTful路径设置、数据库连接、语言结构和文档社区丰富度六个方面来聊聊我自己的感受 。
语言简介相对于其他语言来说 , Rust属于最新的一个成员 。 最早由Mozilla于2014年4月9日发布 。 Rust是一款高级通用语言 , 而且属于少有的一款兼顾开发和执行效率的编程语言 。 Rust结合了脚本语言的语法结构和C语言编译执行效率 , 并且具有类似垃圾回收和数据类型及所有权系统等功能 , 所以可靠性和高性能运行都属于Rust的特色 。 虽然是一个非常年轻的编程语言 , 但是Rust可以算是最近几年最流行的编程语言 。 5月发布的Stack Overflow 2020开发者调查中 , Rust被86.1%开发者选择为“最喜欢”的编程语言 , 比第二名TypeScript高出近20% 。 虽然Rust并不是一个专属的网络应用开发语言 , 但是作为一个以安全著称的编辑语言 , 实际上是非常适合网络开发的 。 而且因为是编译型语言 , 编译器也能在过程中就安全稳定的问题作出提醒 , 作为后端网络开发还是不错的一个优势 。
文章插图
来自mozilla的Rust
服务器支持Rust的通用库中已经包含了类似TcpListener这样的网络通讯库 , 可以直接通过调用std : : net 下面的TcpListener来直接监听Tcp端口 , 然后再处理Request 。 这点上与一些脚本型的编程语言比要自由得很多 。 Rust作为比较流行的编程语言 , 也有不少第三方HTTP库来支持Web开发 , 可以不用再花时间从底层开发 , 比较热门的库像Hyper或者Tide都是被不少Web开发框架用到的 。 Rust下Web开发框架也不少 , 比较热门的有Rocket、Actix-Web、Tower-web、Warp等等框架 。 因为初次接触Rust , 所以还是先从比较成熟的框架Rocket来作Demo的尝试 , 相对文档会比较完善一些 。 不过 , 根据网上的一些讨论 , Rocket或是Actix-Web虽然比较热门 , 但是因为基于比较老的hyper库 , 所以可能对于一些功能不支持 , 例如Rocket不支持Async/Wait功能 。 不过总的来说Rust对于服务器的支持还是不错的 , 而且就算找不到合适的开发框架 , 也可以从底层开发 , 虽然比较浪费时间 。
文章插图
Rocket
IDE VS Editor
文章插图
Rust基本支持主流的编辑器
Rust基本上没有直接IDE , 只是通过插件的方式集合在一些IDE或者编辑器中 , Rust对于主流的编辑器基本都支持 。 因为对于VS Code比较熟悉也就直接通过VS Code安装了Rust插件 , 然后结合通过以下的shell 安装好Rust以及Cargo , 就基本安装好了开发环境 。
curl --proto '=https' --tlsv1.2 -sSf| sh
Rust会通过Cargo来处理依赖的库 , 而且在编译的时候来拉取的 , 因为一些众所周知的网络问题 , 拉取速度非常慢 。 需要将第三方库的注册表网站crates.io换成国内镜像 。 修改成国内镜像的方式 , 在cargo安装文件夹下新建config文件 , 一般cargo的安装位置如下:
- 新型纯蓝OLED可克服目前显示屏蓝光性能不足的挑战
- 性能不落伍,价格又给力!选购ZEN2主机好时机
- 全国劳模郜春海:核心技术买不来,只有自主创新才能不再受制于人
- 电脑开机那么难
- 不止玩游戏!肯德基也要出主机:还能做烤鸡?
- 城市|打造数字长三角 上海能做什么?
- 把手机屏幕换成绿色,到底能不能护眼?
- 心灵上的垃圾也需要清理,这六条能不能帮到你,让你不再浮躁
- 音乐抄袭,人工智能做判官,这事儿靠谱吗?
- 只需一部手机的价格,这台3D打印机能做到你想不到的