快速设置Rust开发环境并编写一个小型的应用
安装Rust
Rustup是Rust的安装器与Rust版本管理器
安装Rust最好的方式使用Rustup工具,它是一个Rust安装并且也是一个rust的版本管理器。
如果你在macOS,linux或者其它类unix系统上运行,使用下面的命令,下载Rustup并安装rust。如果你使用的是windows,请查看其它安装方式
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
保持Rust是最新?
Rust更新非常频繁,如果你使用Rustup安装rust已经有一段时间,并且想获取最后的发行rust版本你可以通过运行命令rustup update
来更新Rust。
Cargo是构建工具也是包管理器
当你安装Rustup的时候,你同时也安装了最后版本的Rust构建工具和Cargo包管理器。如你所知,Cargo可以做很多事情
- 使用
cargo build
构建你的项目 - 使用
cargo run
运行你的项目 - 使用
cargo test
测试你的项目 - 使用
cargo doc
构建你项目的文档 - 使用
cargo publish
发布库到crates.io
如果你想知道已经安装的Rust和Cargo版本,你可以通过运行cargo --version
命令获取版本号。
创建一个新的项目
让我们使用Rust开发环境编写一个小的应用,在开始之前我们使用Cargo创建一个新的项目,使用你喜欢的终端运行以下命令:
cargo new hello-rust
这将会生成一个新的目录hello-rust
,并包括以下文件。
hello-rust
|- Cargo.toml
|- src
|- main.rs
Cargo.toml
是rust的清单文件,这个文件保存着项目的元素据,以及项目的依赖。
我们在src/main.rs
中编写我们的代码。
cargo new
命令为我们生成一个"Hello, world!"项目。我们可以运行这个命令中一个新目录的终端中。
cargo run
当你运行这个命令的时候,你将会看到终端中输出如下。
$ cargo run
Compiling hello-rust v0.1.0 (/Users/ag_dubs/rust/hello-rust)
Finished dev [unoptimized + debuginfo] target(s) in 1.34s
Running `target/debug/hello-rust`
Hello, world!
添加依赖
现在让我们添加依赖到我们的应用中,你可以通过排序crates.io中库来查找流行库。
在这个项目中,我们将会使用ferris-says
包(在Rust中称为箱子)。
在Cargo.toml
文件中添加以下信息。
[dependencies]
ferris-says = "0.2"
现在我们在终端中运行cargo build
,Cargo 将会为我们安装依赖。
你将会看到这个命令会为我们创建一个新的Cargo.lock
文件。这个文件记录着依赖的版本数据,它通常在本地使用。
想要使用这些依赖,我们可以打开main.rs
,移除所有内容,并添加以下行。
use ferris_says::say;
这行代码意味着我们将会调用ferris-says
库的say函数。
一个小型的Rust应用
现在让我们编写一个小型的应用使用我们新添加的依赖,在我们的main.rs
中添加以下代码。
use ferris_says::say; // from the previous step
use std::io::{stdout, BufWriter};
fn main() {
let stdout = stdout();
let message = String::from("Hello fellow Rustaceans!");
let width = message.chars().count();
let mut writer = BufWriter::new(stdout.lock());
say(message.as_bytes(), width, &mut writer).unwrap();
}
保持它,然后运行使用cargo run
这个应用。
假设没有出现任何问题,你将会看到你的应用打印如下屏幕。
----------------------------
| Hello fellow Rustaceans! |
----------------------------
\
\
_~^~^~_
\) / o o \ (/
'_ - _'
/ '-----' \
现在你已经是一位Rustacean,
这只螃蟹是谁?Ferris
Ferris是非官方rust社区的吉祥物,很多Rust程序员都叫它Rustaceans。