用rust语言你可以创建可信赖的高效系统组别软件.开发者可以使用rust做网络开发,像web服务器,邮件服务器.rust也可以用在编译器和解析器,可视化和软件容器,数据库,操作系统和密码学.你可以使用rust来构建游戏,命令行程序,web-assembly, 嵌入式应用开发.
Rust是安全的,可替代现存的系统开发语言像C,C++. 像C和C++, 相比现在开发语言Rust没有运行时和垃圾回收器. 和C和c++不一样的是,rust内存操作是安全的.rust阻止很多和内存有关系像C或c++中的bug.
Rust在性能,安全和实现表达中取得了独特的平衡. 无论你是什么编程背景,你会喜欢rust提供一些东西.
在你在生产上使用rust之前,需要一点理论知识. 在开始开发之前,确定和本课程一起学习或学习其它资源,.在你获得rust基本概念之后,尽可能的多练习. 可以跟随本模块或其它学习路径练习.
我们先学习rust中小的,基本概念.然后在这些基本概念上构建练习和探索.跟随这种方式创建项目,最后你会牢牢掌握这们语言.
Rust是开源,系统编程语言,你可以用来开发高效,安全软件.用rust你可以管理内存,控制系统其它的底层. 并且你可以用更高抽象概念,像迭代器和接口. 这些特性仿形控制器 rust和其它低级语言区分开,像C和C++.
Rust也提供了如下优势,这也使它应用到更广范应用.
类型安全:编译器保证没有操作被应用在错误的变量类型上.
内存安全:rust指针(引用)总是指定可用内存.
数据竞争可以自由运用:rust借用检测器来保证线程安全,是通过保证多个地方程序不能改变相同的值在相同时间.
零成本抽象:rust允许使用高级概念,像迭代,接口和函数式编程用,而几乎没有性能开销. 抽象功能也好像你手写了底层代码.
最小运行时:Rust有个非常小和可选的运行时环境.rust也没有垃圾回收器来高效管理内存.因为这样rust几乎非常像C和C++.
目标是bare metal:rust可以嵌入开发,并且"bare metal"编程,使用它非常适合写操作系统内核或设备驱动.
为评估开发语言是否适合你的项目,需要知道语言的特性与限制.然后对比不同可行的语言,选择运行最好的那个.
在这个单元可以复习一些特性和rust语言的一些限制
Rust提供非常多的特性来帮助你管理和组织你的代码. 这些特性被称为"Rust模块系统".系统组成由包含Crates,modules和paths和可以和他们一起工作的工具.
在Rust程序中Rust标准库std包含可重复使用代码作为基础定义或操作.这些功能库已经定义了一些核心数据类型,像String和Vec
有成千上万个功能库和可用的第三方crates被用在rust程序,大部分通过第三方crate库crates.io来访问.等下可以学习在你的程序中怎样访问这些crates.现在一些create可以被用来练习.
std:rust标准库.在rust练习中,你会注意到以下模块
std::collections - 定义集合类型,像HashMap
std::env - 获得工作环境
std::fmt - 控制你输出格式功能
std::fs - 操作文件系统功能
std::io - 输入输出功能
std::path - 定义运行系统文件目录
structopt:从命令行中容易转换第3方的crate
chrono:操作日期或时间的第三方crate
regex:正则表达式的第三方crate
serde:rust数据结构序列化与把序列化的第三方crate
默认,std库可以被所有rust crate用.为了复用使用在crate或库中代码,我位实现用use关键字.用use关键字,在crate或库中代码 被代入作用范围内,这样你可以访问定义和函数在你的程序中.标准类库可以用use声明来访问.用use path,可以用use std::fmt. 其它的crates或类库可以被访问用他们的名字,像use regex::Regex.
虽然使用rustc直接可以构建crate,大多数项目使用构建和管理工具--Cargo.
Cargo可以为你做很多事情,包括:
Rust有很多优势,当被考虑作为你项目的语言:
rust允许控制程序或类库的性能和资源的消耗,与C和C++相当, 并且默认是内存安全的,消灭了整个类的常见错误.
Rust丰富了抽象特性,允许开发者编码程序中非常多不变量为代码,通过编译器来检测替代约定或是文档.这些特性可以导致感觉"编译通过了,他可以工作了"
Rust构建工具来编译,测试,生成文档和分享代码,也可以丰富生态系统的工具或是库.这些工具可以作一些一些语言操作难的任务,像构建依赖,非常容易并且很有生产在rust中.
有时你只是想要试一小块rust代码或者检查在rust 库中定义的语法.你也可能找一种可以快速分享代码给其它人的方法.rust语言提供并支持这些任务在Rust练习厂.
练习厂是rust开发的IDE,可以直接在网上用Rust Playground.任何人都可以访问.可以写代码,编译代码并且运行代码在相同的环境.下边截屏展示练习厂环境.在工具栏的最右侧,配置菜单可以设置你的环境.
在练习厂,你可以访问在std 标准库中方法或函数 .从crate.io库下载前100和他们的依赖也是直接可用的.
Rust练习厂有几种不同的构建工具和开发特点:
在练习厂有一些构建和运行的选项
在练习厂有一些限制,保护网站被用来恶意操作.这些限制帮助确保网站被所有人使用.
了解更多特性可以访问 Rust website
在章中,你了解到了用rust来构建应用的类型. rust对于低级或是高级类型开发都非常有用.
你检查rust命令来处理你的代码,rustc被用来写和编译rust程序的
发现rust cargo特性并且学习系统module来组织你的代码.可以使用cargo来创建,构建和运行项目.
可以看下rust练习厂来学习怎么写和构建测试,运行代码.
Rust Cookbook包含一些代码,允许跟随推荐练习作为平常的任务.通过不断练习,你可以学习怎样使用常用crates.内容包含的很广的主题,包含处理文本,数字,操作数据库,应用算法,调试程序.你也可以阅读在 Rust website