当前位置: 首页 > news >正文

rust入门系列之Rust介绍及开发环境搭建

Rust教程

Rust基本介绍

网站: https://www.rust-lang.org/

rust是什么

开发rust语言的初衷是:
在软件发展速度跟不上硬件发展速度,无法在语言层面充分的利用硬件多核cpu不断提升的性能和
在系统界别软件开发上,C++出生比较早,内存管理容易出现安全问题的背景下。
为了解决开发系统界别软件的内存安全性不好掌控和高性能高并发没有在语言层面很好支持的这两个问题,
rust在2006年就以私人项目的方式存在了,直到2015年发布了第一个稳定的版本Rust1.0。
rust非常受欢迎,连续四年(2016,2017,2018,2019)在Stack Overflow开发者调查的“最受喜爱编程语言”评选项目中折取桂冠。

Rust的特点

系统级别的编程语言

系统级别中的系统是一个广义的概念,指的是比较底层的系统软件,比如操作系统,一些硬件的嵌入式程序等。

注重于安全

这里的安全针对于内存管理方面的安全,
在别的语言中内存方面的风险有内存泄露等,rust在语法层面杜绝了内存泄露。

高性能和高并发

rust与C++语言的效率不相上下,并且天生设计上很大的利用了多核cpu的资源,所以高性能高并发。

rust的应用场景

需要c++开发的软件都可以用rust代替,内存管理更安全。

Rust还是Go

  • 设计目标不同:Go 旨在简化并发编程并快速开发,而 Rust 更多地关注系统级别的性能和安全。
  • 垃圾收集:Go 使用垃圾收集,这在某些情况下可能导致性能开销。
  • 编译器优化:虽然 Go 的编译器进行了许多优化,但由于 Rust 的更强大的类型系统和所有权模型,Rust 编译器在某些情况下可能能够进行更为深入的优化。

总体来说,Rust 和 Go 是为不同的目的而设计的语言。Rust 专注于系统编程和性能,而 Go 更多地关注于开发速度和并发。每种语言都有其优点和使用场景。

Rust环境搭建和开发工具

基本步骤:

  • 本地安装Rust sdk并配置环境变量
  • 使用IDE或者文本编辑器

本地安装Rust sdk

macOS

使用 Rustup(推荐)

您似乎正在运行 macOS、Linux 或其它类 Unix 系统。要下载 Rustup 并安装 Rust,请在终端中运行以下命令,然后遵循屏幕上的指示。如果您在 Windows 上,请参见 “其他安装方式”。

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

一定要重启命令行

然后输入验证

rustc --version
rustup doc

详细例子见官网: https://code.visualstudio.com/docs/languages/rust

其它os见官网

: https://forge.rust-lang.org/infra/other-installation-methods.html

IDE

Rust 目前没有专用IDE都是通过插件来实现的.

支持 VS Code IntellJ IDEA等等,详细见: https://www.rust-lang.org/zh-CN/tools

本文以VS Code为例,其余的IDE通过官网都可以搜索的到,或者大家有需求出一版对应IDE内容可以评论区留言.

VS Code

下载 VS Code后

点击扩展->搜索rust-analyzer插件

在这里插入图片描述

Cargo

Cargo:Rust 的构建工具和包管理器

安装 Rustup 时,也会安装 Rust 构建工具和包管理器的最新稳定版,即 Cargo。Cargo 可以做很多事情:

  • cargo build 可以构建项目
  • cargo run 可以运行项目
  • cargo test 可以测试项目
  • cargo doc 可以为项目构建文档
  • cargo publish 可以将库发布到 crates.io。

要检查是否安装了 Rust 和 Cargo,可以在终端中运行:

cargo --version

至此我们的开发环境就搭建完成了,是不是特别简单.

http://www.lryc.cn/news/127466.html

相关文章:

  • embed mongodb 集成spring
  • ssh远程连接服务器
  • 性能分析之MySQL慢查询日志分析(慢查询日志)
  • 每日一练 | mongo集群如何创建分片键
  • Postman
  • chapter 3 Free electrons in solid - 3.1 自由电子模型
  • 搭建博客时前端美化内容CSS推荐
  • Linux中 socket编程中多进程/多线程TCP并发服务器模型
  • 【内网穿透】如何实现在外web浏览器远程访问jupyter notebook服务器
  • win10下如何安装ffmpeg
  • 分代收集 + 垃圾回收算法
  • 第三届“赣政杯”网络安全大赛 | 赛宁筑牢安全应急防线
  • CHATGPT源码简介与使用指南
  • 【C++精华铺】8.C++模板初阶
  • 离谱的Bug
  • leetcode 322. 零钱兑换
  • (二)结构型模式:6、外观模式(Facade Pattern)(C++实例)
  • docker的资源控制管理——Cgroups
  • less学习语法
  • 在 SHELL 脚本中调用另一个 SHELL 脚本(报错: go: not found)
  • 07微服务的事务管理机制
  • CS5523规格书|MIPI转EDP方案设计|替代LT8911芯片电路原理|ASL集睿致远CS替代龙讯
  • 【制作npm包5】npm包制作完整教程,我的第一个npm包
  • QT:定时器事件
  • GitHub Actions自动化部署+定时百度链接推送
  • PHP学习心得:如何编写可维护的代码
  • 使用vscode进行远程调试
  • LinuxC编程——进程
  • 深入理解设计模式-结构型之适配器
  • 桥梁结构健康监测系统,智能预警降低桥梁安全隐患