快速设置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。

a gif of ferris scurrying side to side