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.rhkb.cn/news/99633.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

排序(七种排序)

1.插入排序 2.希尔排序 3.选择排序 4.堆排序 5.冒泡排序 6.快速排序 7.归并排序 1.插入排序 1.1思路 把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为 止,得到一个新的有序序列 1.2实现 //插入排…

部署LVS-DR群集

目录 DR模式 LVS负载均衡群集 数据包流向分析 DR 模式的特点 LVS-DR中的ARP的问题 问题1 问题2 DR模式 LVS负载均衡群集部署 部署192.168.142.21(DR服务器) 部署192.168.142.22、192.168.142.23(Web 服务器1、Web 服务器2&#xff0…

(成功踩坑)electron-builder打包过程中报错

目录 注意:文中的解决方法2,一定全部看完,再进行操作,有坑 背景 报错1: 报错2: 1.原因:网络连接失败 2.解决方法1: 3.解决方法2: 3.1查看缺少什么资源文件 3.2去淘…

云曦暑期学习第六周——kali

1.熟悉网络配置 一般来说虚拟机有三种网络模式: NAT (网络地址转换模式)Bridged (桥接模式)Host-Only(主机模式) nat模式: 虚拟系统会通过宿主机的网络来访问外网。而这里的宿主机相当于有两个网卡,一个是真实网卡…

SpringCloud Ribbon中的7种负载均衡策略

SpringCloud Ribbon中的7种负载均衡策略 Ribbon 介绍负载均衡设置7种负载均衡策略1.轮询策略2.权重策略3.随机策略4.最小连接数策略5.重试策略6.可用性敏感策略7.区域敏感策略 总结 负载均衡通器常有两种实现手段,一种是服务端负载均衡器,另一种是客户端…

MongoDB 安装 linux

本文介绍一下MongoDB的安装教程。 系统环境:CentOS7.4 可以用 cat /etc/redhat-release 查看本机的系统版本号 一、MongoDB版本选择 当前最新的版本为7.0,但是由于7.0版本安装需要升级glibc2.25以上,所以这里我暂时不安装该版本。我们选择的是6.0.9版本…

互斥锁的概念,与部分接口

何为互斥 一种对共享数据的保护,防止多线程同时访问共享资源的时,数据混乱的问题。在互斥期间,保证执行流由并行改为串行。任何时刻,互斥保证有且只有一个执行流进入临界区,访问临界资源,通常对临界资源起…

时序预测 | MATLAB实现ELM极限学习机时间序列预测(多指标、相关图)

时序预测 | MATLAB实现ELM极限学习机时间序列预测(多指标、相关图) 目录 时序预测 | MATLAB实现ELM极限学习机时间序列预测(多指标、相关图)效果一览基本介绍程序设计学习总结参考资料效果一览 基本介绍 时序预测 | MATLAB实现ELM极

[HZNUCTF 2023 preliminary] 2023杭师大校赛(初赛) web方向题解wp 全

ezflask 先看题目,应该是模板注入(SSTI),输入{{7*‘7’}}直接报错误。 发现模板是反序输出的,怪不得不能直接输入{{}}。 输入}}‘7’*7{{返回777777,是jinja2 //直接手打,无所谓我是怨种 ?nam…

【数理知识】向量的坐标基表示法,Matlab 代码验证

序号内容1【数理知识】向量的坐标基表示法,Matlab 代码验证2【数理知识】向量与基的内积,Matlab 代码验证 文章目录 1. 向量的坐标基表示2. 二维平面向量举例3. Matlab 代码验证Ref 1. 向量的坐标基表示 假设空间中存在一个向量 a ⃗ \vec{a} a &#…

一次网络不通“争吵“引发的思考

作者: 郑明泉、余凯 为啥争吵,吵什么? “你到底在说什么啊,我K8s的ecs节点要访问clb的地址不通和本地网卡有什么关系…” 气愤语气都从电话那头传了过来,这时电话两端都沉默了。过了好一会传来地铁小姐姐甜美的播报声…

学习笔记:Opencv实现拉普拉斯图像锐化算法

2023.8.19 为了在暑假内实现深度学习的进阶学习,Copy大神的代码,记录学习日常 图像锐化的百科: 图像锐化算法-sharpen_lemonHe_的博客-CSDN博客 在环境配置中要配置opencv: pip install opencv-contrib-python Code and lena.png…

sql in mac学习记录

鉴于有一段时间没有访问mysql了,最近打算在mac 系统上下载mysql 练习一下sql的使用,于是 First, the mysql download https://dev.mysql.com/downloads/mysql/ Second, Mysql install steps Install the software by normally install one software …

【算法刷题之数组篇(2)】

目录 1.leetcode-35. 搜索插入位置(简单)2.leetcode-74. 搜索二维矩阵(中等)3.leetcode-73. 矩阵置零(中等)4.leetcode-56. 合并区间(中等)5.leetcode-54. 螺旋矩阵(中等…

了解扩散概率模型 (DPM)

一、介绍 对复杂的概率分布进行建模是机器学习的核心问题。如果这个问题可以出现在不同的形状下,最常见的设置之一如下:给定仅由一些可用样本描述的复杂概率分布,如何生成新样本? 所有生成模型都依赖于相同的基本思想,…

【Python从入门到进阶】32、bs4的基本使用

接上篇《31、使用JsonPath解析淘票票网站地区接口数据》 上一篇我们介绍了如何使用JSONPath来解析淘票票网站的地区接口数据,本篇我们来学习BeautifulSoup的基本概念,以及bs4的基本使用。 一、BeautifulSoup简介 1、bs4基本概念 BeautifulSoup是一个P…

Flink之时间语义

Flink之时间语义 简介 Flink中时间语义可以说是最重要的一个概念了,这里就说一下关于时间语义的机制,我们下看一下下面的表格,简单了解一下 时间定义processing time处理时间,也就是现实世界的时间,或者说代码执行时,服务器的时间event time事件时间,就是事件数据中所带的时…

怎样让音频速度变慢?请跟随以下方法进行操作

怎样让音频速度变慢?在会议录音过程中,经常会遇到主讲人语速过快,导致我们无法清晰听到对方说的内容。如果我们能够减慢音频速度,就能更好地记录对方的讲话内容。此外,在听到快速播放的外语或方言时,我们也…

途乐证券|买了股票但不管可以吗?会不会被撤回?

炒股是个说简略也简略、说难也难的事情,一些股民绞尽脑汁、忙前忙后紧盯大盘,实时剖析,把自己累够呛;一些股民云淡风轻,买了股票却几乎不怎么理睬,兴致来了看两眼,也就算研讨股票行情了。那么&a…

8.4.tensorRT高级(3)封装系列-infer推理封装,输入输出tensor的关联

目录 前言1. infer封装总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习 tensorRT 高级-infer推理封装,输入输出…