这是关于向JavaScript开发人员介绍Rust语言的系列文章的第一部分。
我发现,如果用我已经知道的东西来解释新的东西会更容易理解--我想其他人跟我也一样。
看一下下面的表格:
启动
Rust 安装完成后使用 rustup 命令. rustup 类似于nvm对于Node.js. 可以用来安装管理多个rust版本。
Cargo
使用rustup安装了Rust 同时也会安装 Cargo ,类似与安装 Node.js 同时也会安装 NPM. Cargo is是Rust的包管理工具,如果你之前用过NPM的话会感觉非常熟悉。
Rust的包被称作“crates”, 这些包是从 crates.io 下载的类似于 NPM 包从 npmjs.com下载一样.
NPM 主要是用来做包管理, 也可以使用 npm scripts 功能来执行任务. Cargo 内置的通用任务包括执行代码,构建代码等等. Cargo 也有一些开箱即用的功能例如 workspaces (类似于 lerna)的功能, 依赖重载 (类似 patch-package), 也可以运行测试任务 (类似于 mocha, jest 等), 运行benchmark 等等.
总得来说Cargo跟NPM很类似!
项目启动
通过运行下面的命令来创建新项目
$ cargo new hello_rust
跟执行npm init 差不多,会创建一个hello_rust目前包含如下结构
hello_rust
├── .git
├── .gitignore
├── Cargo.toml
└─┬ src
└── main.rs
Cargo.toml
包配置文件跟package.json类似,版本锁定文件Cargo.lock跟package-lock.json类似,打开该文件你能看到一个熟悉的结构
[package]
name = "hello_rust"
version = "0.1.0"
authors = ["gress"]
edition = "2018"
[dependencies]
[package]表包含一些元数据例如包名, 作者,关键字等等
[dependencies]表 跟 package.json 中的 dependencies类似. Cargo.toml 也支持[dev-dependencies]相当于 devDependencies
依赖管理
安装新依赖通常是编辑Cargo.toml文件,在[dependencies]表中添加新依赖,最后执行cargo build命令。例如:我们需要添加“serde“ 依赖,我们需要把Cargo.toml改成下面:
[package]
name = "hello_rust"
version = "0.1.0"
authors = ["sheshbabu"]
edition = "2018"
[dependencies]
+ serde =
删除和更新依赖跟这个类似都需要编辑Cargo.toml文件然后执行cargo build命令。起初对已有的命令cargo install很疑惑,最后明白了原来跟npm install -g 一样。
如果你想要类似于npm install,npm update或npm uninstall这样的命令,可以安装cargo-edit 添加cargo add,cargo rm 和 cargo upgrade命令来增强cargo.
开发工具
任务运行器
cargo支持执行通用的任务例如:build, run, test 等等。如果你想运行类似于NPM script的脚本话,可以使用make或者cargo-make
热更新
对 Node.js 开发来说Nodemon是一个很必要的工具 -用来监听文件的更然后重启应用.cargo-watch对rust来说就是这样的工具.
代码检查和格式化
Rust 内置的风格检查工具是Clippyand 格式化工具是rustfmt. 在JS生态系统中相当于ESLint 和 Prettier,使用cargo-husky添加预提交hooks.
漏洞检测
使用cargo-audit来扫描依赖的漏洞类似于npm audit.
谢谢阅读! :)