Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Rust 从入门到精通01-简介

Rust 从入门到精通01-简介

作者头像
IT可乐
发布于 2022-09-19 07:38:21
发布于 2022-09-19 07:38:21
8210
举报
文章被收录于专栏:IT可乐IT可乐

1、rust 从哪里来

Rust语言在2006年作为 Mozilla 员工 Graydon Hoare 的私人项目出现,而 Mozilla 于 2009 年开始赞助这个项目。第一个有版本号的 Rust 编译器于2012 年 1 月发布。Rust 1.0 是第一个稳定版本,于 2015年5月15日发布。

Graydon Hoare 是一个职业编程语言工程师,其日常工作就是给其他语言开发编译器和工具集,但是不会参与语言本身的设计,由于这种工作性质,他接触过很多编程语言,了解各种语言的优缺点。比如 c 和 c++,性能比较好,但是类型系统和内存都不太安全;一些拥有 GC 的语言,比如Java、golang、kotlin等,内存是安全的,但是性能却比较低。

于是 Graydon Hoare 萌生了自己开发一门语言的想法,这门语言就是 rust。

2、rust logo

Rust 的 logo 承载了创造者对该语言的期望:

①、Rust 这个单词是由 TrustRobust 组合而成,暗示了信任(Trust)和鲁棒性(或健壮性、Robust)。

②、Rust Logo 的形状与一种叫做锈菌的真菌相似,这种真菌生命力非常顽强,在其生命周期内可产生多达 5 种孢子类型,这 5 种生命形态还可以相互转化。也就是鲁棒性(健壮性)非常强。其 Logo 上面的 5 个小圆孔,与锈菌的 5 种生命形态相对应,也在暗示 Rust 语言超强的健壮性。

3、rust 是什么

在 rust 官网:https://www.rust-lang.org/ ,有这样一句醒目的话:

Rust 是一门赋予每个人构建可靠且高效软件能力的语言。

Rust 是一门系统级编程语言,有三大特点:

①、运行快

②、防止段错误

③、保证线程安全

4、rust 语言版本说明

rust 语言版本从三个不同的维度来讲,包括三个概念。

4.1 语义化版本

其格式为:主版本号.次版本号.修订号,依次用 句点 隔开。

简单说下语义版本号递增规则:

①、主版本号:当做了不兼容的 API 修改。

②、次版本号:当做了向下兼容的功能性新增。

③、修订号:当做了向下兼容的问题修正。

4.2 发行版本

https://github.com/rust-lang/rust/branches/all

①、master 分支:对于一个发行版本

②、beta 分支:对应 Beta 版本,也叫测试版本。

③、stable 分支:对应 Stable 发行版,也叫稳定版。

通常稳定版和测试版每 6 周 发布一次,一般来说,会先发布测试版,经过一段时间测试,在进行发行稳定版。

4.3 Edition 版次

可以看到每个通过 cargo工具(Cargo 是 Rust 的构建系统和包管理器,后面会详细介绍) 创建的 rust项目的 Cargo.toml文件。

版次的意义和语义化是正交的概念,方便rust自身的进化。目前rust有两个版次,分别是 rust2015 和 rust2018。

因为rust每6周发布一次新的语义化版本,版本更新迭代速度快,但是版次通常每 3 年发布一次,之所以存在版次和语义化两种概念,我们可以看这样一个例子:

例如添加可能与代码中的标识符冲突的新关键字,比如 ”async"和“await”,刚开始rust是没有异步的概念,后面我们要添加这两个关键词,但是旧代码可能会把这两个关键词当做变量名来使用,这时候如果只有语义化的概念,我们升级rust版本号,就会造成旧代码编译报错。但是增加了版次的概念就不同了,我们对于之前的代码编译方式选择之前的版次,新的代码编译方式选择新的版次,那么问题就解决了。

因此,如果你正在使用 Rust 2015,并且您的某个依赖项使用 Rust 2018,那么一切正常

开发者可以在 Rust 包管理配置文件 Cargo.toml 来配置 edition = "2018",表示依赖 2018 版次。

编译的时候可以通过:

Rustc --edition 2015|2018|2021

5、rust 能干什么

截止 2021 年,主流的互联网公司都把 Rust 纳入主力语言,比如开发操作系统 Redox/Fuchsia、高性能网络 Tokio、应用的高并发后端 TiKV,甚至客户端软件本身(飞书)。

Rust 除了在其传统的系统开发领域,如操作系统、设备驱动、嵌入式等方向高歌猛进之外,还在服务端高性能、高并发场景遍地开花。

图片截取《极客时间-陈天-rust编程第一课》

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一步步靠近:Rust入门小百科
从2015年Rust 发布1.0 版本以来,Rust 语言已经被广泛应用于各大公司及诸多领域。每一年,Rust 社区都会聚集在一起制订路线图,规划Rust 未来的发展。在2018 年,Rust 团队推出了新的大版本(edition)计划:
用户1682855
2019/03/06
1.4K0
一步步靠近:Rust入门小百科
Rust的开发环境与工具
无论使用何种系统, 均可以根据 Rust 官方网站提供的 rustup-init 工具完成 Rust 的安装. rustup-init 下载地址:
端碗吹水
2022/06/01
1K0
官宣 Rust 2021 Edition 计划 一睹为快
原文: The Plan for the Rust 2021 Edition[1]
张汉东
2021/05/11
2.2K0
学Rust不学Cargo,等于没学Rust:workspace详解
上一篇文章我们介绍了Cargo.toml中的features配置块,这次我们再来看看workspace配置块的用法。
程序饲养员
2024/01/02
4830
Rust 从入门到精通03-helloworld
安装完成 Rust 之后,我们可以编写 Rust 的 Hello Word。这里介绍两种方式,一种是rust原生方式,一种是利用 cargo 工具(重要)
IT可乐
2022/09/19
6280
Rust 从入门到精通03-helloworld
回撸Rust China Conf 2020 之《Rust企业级应用最佳实践》
本篇回撸一把《Rust企业级应用最佳实践》,讲者分享了Rust应用的“最后一公里”中所解决的问题和有效实践,非常接地气。
袁承兴
2021/03/02
6840
回撸Rust China Conf 2020 之《Rust企业级应用最佳实践》
Rust API 指南:文档
每个公共模块,特型,结构,枚举,函数,方法,宏和类型定义都应具有一个示例,用于该功能的练习。
袁承兴
2020/12/10
2.2K0
Rust API 指南:文档
【Rust日报】2020-07-31 Rust 1.45.1发布
上次1.45稳定版发布后没多久有人在github爆出了一个似乎动摇到Rust根基的bug(可变借用失效),后来发现主要原因是之前一个重构和整理const propagator的PR引入的问题(具体见Rust Stable 1.45 中的 神奇 Bug 解读),官方博客提到在发布release版之前进行的crater测试(crater测试会用即将发布的版本把crates.io所有的crate全部跑一遍,预计花费4到7天的时间)都没有检测到这个bug,说明在正常状态下几乎不太会触发到这个bug,因为它的条件必须满足如下两条:
MikeLoveRust
2020/08/04
4850
Rust学习笔记之Rust环境配置和入门指南
在前端技术,如雨后春笋般破土而出的今天。其技术偏向性,不仅仅是搞一个新的技术框架,更多的是往高性能和底层技术发展。比方说,利用Rust特性所编写的SWC前端构建工具,目前核心功能相当于 Babel;还有就在2022年10月26日,Vercel 公司正式宣布推出新的打包工具 Turbopack,他们用基于 Rust 的 SWC 替换基于 JavaScript 的转译器 Babel,速度提升了 17 倍。他们还替换了 Terser,压缩的速度提高了 6 倍,从而减少了加载时间和带宽的使用;还有在一些原本只能在客户端运行的程序,现在也被移植到浏览器中运行,例如AutoCAD/Photoshop等,而这些都依赖近期比较热门的WebAssembly技术。
前端柒八九
2022/12/19
1.1K0
Rust学习笔记之Rust环境配置和入门指南
🦀 新手必看!小小白也能用Rust点亮LED,入门嵌入式开发(下)
在🦀 新手必看!小小白也能用Rust点亮LED,入门嵌入式开发(上)中,我们探讨了为什么对编程新手而言,Rust的吸引力不在于内存安全,以及为何用Rust点亮LED比写Hello World更有趣。我们还学习了如何通过Rust代码点亮第一个LED灯,开启了Rust嵌入式开发之旅。
程序员吾真本
2024/12/07
2340
🦀 新手必看!小小白也能用Rust点亮LED,入门嵌入式开发(下)
【Rust日报】 2019-10-08 纯Rust实现的零知识证明系统 —— OpenZKP
当前,crates无法正式指定MSRV。 结果导致用户无法检查是否可以在不构建工具箱的情况下在其工具链上构建crates。 这也引发了关于如何应对MSRV暴增时如何处理crates版本更新的争论,保守的方法是考虑类似破例更改之类的更改,这可能会阻碍整个生态系统采用新功能或导致版本号膨胀,从而使其难以保持接下来几个版本的crates是最新的。 另一方面,对于较旧的编译器版本,使用更宽松的更新方法可能会导致crates损坏。
MikeLoveRust
2019/10/09
8670
【Rust日报】 2019-10-08 纯Rust实现的零知识证明系统 —— OpenZKP
Rust 1.56.0 版本和 Rust 2021 版次发布,新特性一览,及项目的迁移、升级
2021 年 10 月 22 日,Rust 1.56.0 新版本发布,同时发布了 Rust 2021 新版次。本次更新主要集中在:prelude 的补录、Cargo 新的默认解析特性 resolver、数组迭代器、闭包中的分离捕获、panic 宏的一致性改进、预留语法、warnings -> errors,宏中的 Or 模式等。实际上,改变并不算大,已有项目的迁移到 2021 版次,也很顺利通畅。
niqin.com
2022/09/01
1.8K0
【Rust学习】01_入门
让我们开始您的 Rust 之旅吧!有很多东西要学,但每一段旅程都是从第一步开始的,在本章中,我们将一起来学习以下知识点:
思索
2024/06/24
1720
【Rust学习】01_入门
关于Rust
而在Stack Overflow上,已经连续五年(2016-2020)获得Most Loved Languages的第一名了
Taishan3721
2022/01/24
6670
关于Rust
Rust:冉冉升起的新力量
你肯定有过夏夜仰望星空的时候,但不知道你是否思考过这样一个问题:如何才能知道宇宙万物星罗棋布的规律?科学家们殚精竭虑地研究,就是为了探寻这个秘密。如果科学家们能和宇宙的设计者对话,就可以通过设计者的亲口描述了解其对宇宙万物的规划,这样就可以对研究宇宙万物起到提纲挈领的作用,科学家们的工作会更有成效。但是,没有这种“如果”。
用户1682855
2019/03/06
7670
Rust:冉冉升起的新力量
Rust 2021 版本特性预览,以及工作计划
2021 年 3 月 4 日,由 Ryan Levick 代表 Rust 2021 版本工作组发布博文:Planning the Rust 2021 Edition。
niqin.com
2022/06/30
9440
Rust crate与模块
假设你正在编写一个程序,用来模拟蕨类植物从单个细胞开始的生长过程。你的程序,也像蕨类植物一样,一开始会非常简单,所有的代码也许都在一个文件中——这只是想法的萌芽。随着成长,它将开始分化出内部结构,不同的部分会有不同的用途。然后它将分化成多个文件,可能遍布在各个目录中。随着时间的推移,它可能会成为整个软件生态系统的重要组成部分。对于任何超出几个数据结构或几百行代码的程序,进行适当的组织都是很有必要的。
草帽lufei
2024/05/08
3030
Rust crate与模块
第8章 | 测试与文档、依赖项、发布、工作空间
正如 2.3 节所述,Rust 中内置了一个简单的单元测试框架。测试是标有 #[test] 属性的普通函数:
草帽lufei
2024/05/08
1120
【Rust 视界】为什么要在医学成像中使用Rust?对下一代系统的现代技术的思考
现代数字成像技术带来了大量的创新和巨大的有用的应用。从医疗研究到达的那一刻起,医生就可以在他们的工作站上,甚至是在医疗中心以外的地方通过移动设备轻松方便地看到高质量的成像系列。联合图片存档和通信系统(PACS)可以从多个登记处收集病人的全部历史,并通过电子邮件向病人发送摘要。在几秒钟内,计算机辅助诊断系统通过人工智能提供对临床病例和第二意见的洞察力,以帮助决策支持过程。
张汉东
2021/10/13
1.3K0
【Rust学习】02_猜谜游戏
让我们一起动手完成一个项目,来快速上手 Rust!本章将介绍 Rust 中一些常用概念,并向您展示如何在实际项目中运用它们。您将会学到 let、match、方法、关联函数、引用外部 crate 等知识!后续章节会深入探讨这些概念的细节。
思索
2024/06/26
1660
【Rust学习】02_猜谜游戏
相关推荐
一步步靠近:Rust入门小百科
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档