当前位置: 首页 > news >正文

学网站建设要多久网站建设中 模板素材

学网站建设要多久,网站建设中 模板素材,网站商品展示设计,湛江网站建设模板rust学习 1. 项目组织结构 工程 # 创建一个工程 cargo new my-project工作空间 在 Rust 中,工作空间(Workspace) 是一个包含多个 Rust 项目的共享环境,用于管理多个 crate(库或可执行文件)。它允许多个…

rust学习

1. 项目组织结构

工程

# 创建一个工程
cargo new my-project

工作空间

Rust 中,工作空间(Workspace) 是一个包含多个 Rust 项目的共享环境,用于管理多个 crate(库或可执行文件)。它允许多个 Rust 项目共享 Cargo.lock、依赖项和 target/ 目录,提高编译效率,并且适用于多包管理、模块化开发


🔹 为什么使用 Rust 工作空间?

Rust 工作空间适用于以下场景:

  1. 管理多个相关的 crate(类似于 monorepo)

    • 比如,你有一个主程序 app,但 app 依赖于 lib1lib2,可以用工作空间管理它们。
  2. 共享依赖,减少重复构建,提高编译速度。

    • 例如 applib1 都依赖 serde,Rust 只会编译一次。
  3. 统一管理 Cargo.lock,保证所有 crate 依赖版本一致。


🔹 如何创建 Rust 工作空间?

1️⃣ 创建一个 Rust 项目

mkdir my_workspace
cd my_workspace
cargo new --lib lib1
cargo new --lib lib2
cargo new --bin app

你会得到如下目录结构:

my_workspace/
├── Cargo.toml  # 工作空间的根 Cargo.toml
├── lib1/
│   ├── Cargo.toml
│   ├── src/
│   │   └── lib.rs
├── lib2/
│   ├── Cargo.toml
│   ├── src/
│   │   └── lib.rs
├── app/
│   ├── Cargo.toml
│   ├── src/
│   │   └── main.rs

2️⃣ 配置 Cargo.toml

my_workspace/Cargo.toml(根目录)中添加:

[workspace]
members = ["lib1", "lib2", "app"]
resolver = "2" # 使用 Cargo v2 依赖解析

这样,Rust 知道这 3 个项目属于同一个工作空间。


3️⃣ 在 app 依赖 lib1lib2

修改 app/Cargo.toml

[dependencies]
lib1 = { path = "../lib1" }
lib2 = { path = "../lib2" }

app/src/main.rs

use lib1::hello;
use lib2::world;fn main() {hello();world();
}

lib1/src/lib.rs

pub fn hello() {println!("Hello from lib1!");
}

lib2/src/lib.rs

pub fn world() {println!("World from lib2!");
}

4️⃣ 运行工作空间

你可以在 my_workspace/ 目录下直接运行:

cargo run -p app

输出:

Hello from lib1!
World from lib2!

你也可以一次性编译所有 crate

cargo build

🔹 工作空间的额外功能

✔ 共享 Cargo.lock

所有 crate 共享 Cargo.lock,保证相同的依赖版本:

my_workspace/
├── Cargo.lock  # 统一管理所有 crate 的依赖
├── ...

✔ 使用 workspace.dependencies

如果多个 crate 需要相同的依赖项,可以在根 Cargo.toml 统一声明:

[workspace.dependencies]
serde = "1.0"

然后,在 lib1/Cargo.tomllib2/Cargo.toml 这样写:

[dependencies]
serde = { workspace = true }

这样可以确保 lib1lib2 使用相同版本的 serde,避免版本冲突。


🔹 总结

Rust 工作空间 适用于管理多个 crate,优点包括:

  • 提高编译效率(共享 target/
  • 统一依赖管理(共享 Cargo.lockworkspace.dependencies
  • 模块化开发(适合 Monorepo)

适用于:

  • 大型项目(微服务、多组件)
  • 库+CLI 工具
  • 框架开发(如 Web 框架)

你有具体的 Rust 项目需求吗?我可以帮你优化工作空间结构! 🚀

2. 常使用的库

  • serde = { version = “1.0”, features = [“derive”] } # 序列化支持
  • serde_json = “1.0” # JSON 序列化
  • tokio = { version = “1.35”, features = [“full”] }
  • axum = “0.7.9”
http://www.dtcms.com/a/460525.html

相关文章:

  • 做网站 十万小程序后端怎么搭建
  • 寒亭营销型网站建设wordpress 进销存
  • 做杂志模板下载网站ppp模式在网站建设的
  • 知识产权教育平台网站开发总结网站开发模板教务管理
  • 天律网站建设上班没事做看什么网站
  • 网站开发 搜索wordpress建站阿里云
  • 平面设计专用网站建一个pc网站需要多少钱
  • 网站怎样建立数据库连接网络营销理论与实务
  • 网站建设报价方案.xlswordpress single页面
  • 网站建设细化流程咸宁商城网站建设
  • 网站建设岗位招聘犀牛建设网站
  • 网站出现的的问题视觉中国网站
  • 一个网站做两个优化可以做吗做企业网站后期还需要费用吗
  • 网站服务器是干什么的专业网站建站公司
  • 网站架构演变流程苏州前几天网站建设
  • 蓝色系网站竞价排名点击
  • 怎么给网站做百度坐标定位做网站需注重的几点
  • 开题报告风景区网站开发北京网站维护浩森宇特
  • 网站建设业务好跑吗wordpress工作室
  • 无锡网站 制作中山手机网站建设哪家好
  • 网站建设核电网络项目
  • 网站后期维护方案漯河网站建设漯河
  • 网页和网站的不同苏州公司名称查询
  • a站是指哪个网站学校门户网站建设说明
  • 广州网站建设商家理卖做各视频网站的会员
  • 汕头建设企业网站广元做开锁网站
  • 工业和信息化部网站备案系统是什么意思程序员免费自学网站
  • 游戏类网站备案多语言网站怎么做
  • 深圳龙岗网站建设公司哪家好中国做网站最好的企业
  • 校园二手网站开发赣州网上商城系统