rust cargo使用

简介

Cargo 是 Rust 的构建系统和包管理工具。

主要负责三个工作:

  • 构建build代码
  • 下载你代码 依赖dependencies包装箱crate
  • 编译 你的源码包装箱crate

查看cargo是否被正确安装

cargo --version

项目的目录结构

要使用cargo工具,项目的目录结构需要如下组织:

project_name
|-  src                     // 放置源文件的目录
    |- main.rs / lib.rs     // 源文件
|-  Cargo.toml              // Cargo的配置文件

Cargo.toml

toml

  • 要使用cargo工具,必须在项目的根目录下建有其配置文件。
  • TOML(Tom’s Obvious Minimal Language)格式。简单理解就是ini的进化版。

注意: Cargo.toml的C是大写

文件预览

Cargo.toml

[package]                   // 表明下面的语句用来配置一个包
name = "project_name"       // 项目名
version = "0.0.1"           // 版本
authors = ["Your name <you@example.com>"] // 作者

[dependencies]              // 依赖 (如果有)
rand = “^0.3.0”             // 依赖的外部包装箱,以及其需要版本

包装箱 crate

  • 项目除了自己编写的源码外,还能依赖 dependencises 外部包装箱 crate 以及其 所要求的版本。
  • 包装箱 crate 是一个 Rust 代码的包。类似于其他语言的库 library 或者 package

包装箱的版本

Cargo理解语义化版本,它是一个编写版本号的标准。

  • “^0.3.0” 代表”任何兼容0.3.0的版本”
  • “0.3.0” 代表”^0.3.0的简写”
  • “=0.3.0” 代表”只使用0.3.0的版本”
  • 也可以指定版本范围

具体细节可以参考 cargo文档

Cargo.lock

依赖”^0.3.0”获得了兼容的最新版本,如0.3.14。但过了一段时间后推出了兼容的0.3.15版本修复了0.3.14的bug的同时,却包含着破坏现有代码的回归缺陷(regression)。这可如何是好?

Cargo.lock 闪亮登场

当你第一次build项目时,Cargo 会查找所有符合你的 依赖dependencies 要求的版本,并记录到到 Cargo.lock 文件里。当你在未来再次
build 你的项目时,Cargo 会注意到 Cargo.lock 的存在,并接着使用 Cargo.lock 中指定的版本而不是再次去做 查明和记录版本 的工作。这让你有了一个可重复的自动构建。换句话说,项目会保持在依赖0.3.14的版本。直到我们显式的在 Cargo.toml 中升级。

文件预览

Cargo.lock

...

[[package]]
name = "libc"
version = "0.2.36"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "rand"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
 "libc 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
 "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
]

...

Cargo的构建(build)和运行(run)

在创建好项目的 目录结构Cargo.toml 后,就可以使用cargo来构建和运行项目了。

构建 build

项目根目录 下输入 cargo build 就可构建项目(编译项目),
./target/debug/project_name 中找到编译后的 可执行文件(exe) 运行。

cargo build

cargo build 默认是以 debug 方式编译,在项目 release 时,使用 --release 参数编译最终版本。

cargo build --release

运行 run

也可以在 项目根目录 下使用 cargo run 一个步骤来代替上述的 cargo build + run exe 两个步骤。

cargo run

Cargo的创建(new)

除了可以手动创建 目录结构Cargo.toml 外,可以使用 Cargo new 来自动创建。在执行此命令的目录下创建名为project_name的目录,包含Cargo.toml,自动创建了 src/main.rs 。并且,还自动创建了git的仓库。

cargo new project_name --bin

其中 --bin 表示是新建一个可执行文件。

参考

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 我可以为您介绍一下Rust使用MongoDB的步骤:1.安装MongoDB Rust驱动程序;2.使用MongoDB Rust驱动程序连接MongoDB服务器;3.使用MongoDB Rust驱动程序执行CRUD操作。 ### 回答2: Rust是一种系统级编程语言,可以与各种现代数据库进行交互。MongoDB是一个非关系型数据库,在Rust中可以使用第三方库来连接和操作MongoDB。 在Rust使用MongoDB,我们可以使用像tokio这样的异步运行时和像mongodb这样的MongoDB驱动。首先,我们需要在Cargo.toml文件中添加mongodb的依赖项,然后使用`tokio`来创建异步运行时。 连接到MongoDB的代码如下: ```rust use mongodb::{Client, options::ClientOptions}; #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { // 设置MongoDB连接选项 let mut options = ClientOptions::parse("mongodb://localhost:27017").await?; // 创建MongoDB客户端 let client = Client::with_options(options)?; // 连接到数据库 let database = client.database("mydatabase"); // 进行数据库操作 // ... Ok(()) } ``` 通过使用`ClientOptions::parse`函数来解析MongoDB连接URL,并使用`Client::with_options`函数创建MongoDB客户端。然后,我们可以使用`client.database`函数来获取指定数据库的句柄,然后进行进一步的数据库操作。 在Rust使用MongoDB,我们可以执行各种操作,如插入文档、查询文档、更新文档和删除文档等。这些可以通过调用`Database`和`Collection`类型的各种函数来实现。 总结来说,Rust可以通过使用类似tokio和mongodb这样的库与MongoDB进行连接和操作。使用异步运行时和MongoDB驱动,我们可以在Rust中实现与MongoDB的高效交互。 ### 回答3: Rust是一种高效、安全的系统级编程语言,它拥有强大的内存安全性和并发性能。Rust与MongoDB可以很好地结合使用,因为Rust提供了与MongoDB的交互的高性能驱动程序。 在Rust中,我们可以使用第三方库例如"mongodb"来连接和操作MongoDB数据库。这个库提供了实现MongoDB的主要功能,如CRUD操作、索引、聚合管道等。通过使用这个库,我们可以使用Rust编写高性能、线程安全的MongoDB应用程序。 使用Rust编写与MongoDB交互的应用程序,有以下几个优势: 1. 性能优越:Rust被设计为高性能语言,能够利用服务器的所有资源。与其他编程语言相比,Rust在MongoDB应用程序的CPU和内存利用率方面表现出色。 2. 强大的类型系统:Rust的类型系统可以防止内存和并发错误,减少潜在的漏洞和错误。这对于与MongoDB交互的应用程序尤为重要,因为MongoDB是一个大规模、高并发的数据库系统。 3. 原生并发支持:Rust具有一流的并发支持,能够利用多核处理器,提高MongoDB应用程序的处理能力和响应时间。 4. 可靠性:Rust的内存安全特性和静态类型检查能够减少错误和崩溃的可能性。这对于数据持久化和处理敏感数据的MongoDB应用程序尤为重要。 总之,Rust与MongoDB的结合可以实现高性能、安全和可靠的应用程序。通过利用Rust的优势和MongoDB的强大功能,我们可以构建出高效、可扩展的数据库驱动程序和应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值