Rust 语言初次浅尝

Posted by caodailiang on July 11, 2023

Rust简介

Rust 致力于成为优雅解决高并发和高安全性系统问题的编程语言,支持函数式和命令式以及泛型等编程范式,适用于大型场景,即创造维护能够保持大型系统完整的边界。这就导致了它强调安全,内存布局控制和并发的特点。在性能上,标准Rust性能与标准C++性能不相上下。

安装

Linux 下可在终端输入如下命令安装:

$ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh

在Debian或Ubuntu下也可使用以下方式安装:

$ sudo apt-get install rustc

Cargo使用

Cargo 是 Rust 的构建系统和包管理器,类似Golang的gomod。包管理工具最重要的意义就是任何用户拿到你的代码,都能运行起来,而不会因为各种包版本依赖焦头烂额。Cargo可以构建代码、下载依赖库并编译这些库,并支持将包上传到Rust社区的包仓库 crates.io

创建一个项目

$ cargo new rust-demo

查看生成的项目结构:

$ cd ./rust-demo
$ tree
.
├── .git
├── .gitignore
├── Cargo.toml
└── src
    └── main.rs

main.rs 即为程序代码入口,打开看就是一个经典的HelloWorld,可直接运行。

项目编译运行

$ cargo run
Compiling rust-demo v0.1.0 (/home/caodailiang/rust-demo)
    Finished dev [unoptimized + debuginfo] target(s) in 0.74s
     Running `target/debug/rust-demo`
Hello, world!

cargo run 首先对项目进行编译,生成二进制./target/debug/rust-demo,然后再运行它,因此该命令实际上等同于运行了两个指令:

  1. 编译
    $ cargo build
     Finished dev [unoptimized + debuginfo] target(s) in 0.00s
    
  2. 运行
    $ ./target/debug/rust-demo
    Hello, world!
    

发布(release)构建

cargo run 默认是运行在 debug 模式下,所以它生成的二进制是放在debug目录下。在debug模式下编译器不会做任何的优化,只为尽快的编译完成,然而相应的程序运行速度就会很慢。

要生成产品化的高性能程序,需要添加 --release 参数来编译:

$ cargo run --release
$ cargo build --release

快速检查

当项目大了之后,编译过程不可避免的会变慢,为了快速的检查一下代码能否编译通过,可使用 cargo check 命令。

$ cargo check
Checking rust-demo v0.1.0 (/home/caodailiang/rust-demo)
    Finished dev [unoptimized + debuginfo] target(s) in 0.04s

编码尝试

一个简单的web服务器,参考《Rust语言圣经》

https://github.com/caodailiang/rust-demo