Rust 的代码结构“玩法”其实比很多语言更灵活,因为它不强制 OOP,也不强制目录结构,但有一套非常清晰的模块体系(module system)。常见可以分成 3 层结构 + 多种工程组织方式 来理解。


一、基础核心:模块体系(Rust 的灵魂)

Rust 主要靠这 4 个关键词组织代码:

  • mod(模块)
  • use(引入)
  • pub(可见性)
  • crate(包)

1)单文件模块拆分

mod user;

fn main() {
    user::login();
}

👉 user.rs:

pub fn login() {
    println!("login");
}

👉 适合小项目


2)嵌套模块(推荐基础结构)

mod service {
    pub mod user {
        pub fn login() {}
    }
}

fn main() {
    service::user::login();
}

👉 适合中小项目逻辑分层


3)文件夹模块结构(企业最常用)

src/
 ├── main.rs
 ├── user/
 │    ├── mod.rs
 │    ├── service.rs
 │    ├── model.rs

main.rs:

mod user;

fn main() {
    user::service::login();
}

user/mod.rs:

pub mod service;
pub mod model;

👉 这是 Rust Web 项目最常见结构(Actix / Axum)


二、工程级“玩法”(架构风格)

1)分层架构(类似 Java)

src/
 ├── controller/
 ├── service/
 ├── repository/
 ├── model/

特点:

  • 清晰
  • Java 开发者最容易上手
  • 适合 Web 后端(Axum / Actix)

2)领域驱动(DDD 风格)

src/
 ├── domain/
 │     ├── user/
 │     ├── order/
 ├── application/
 ├── infrastructure/
 ├── interfaces/

特点:

  • 企业级
  • 复杂业务系统
  • Rust + 微服务常用

3)按功能模块划分(推荐⭐)

src/
 ├── user/
 │    ├── controller.rs
 │    ├── service.rs
 │    ├── model.rs
 ├── order/
 ├── payment/

特点:

  • 高内聚
  • 扩展性强
  • 最适合中大型项目

👉 Rust 社区非常推荐这种


4)二进制 + 库分离(高级玩法)

project/
 ├── src/
 │    ├── main.rs      (bin)
 │    ├── lib.rs       (core逻辑)

lib.rs:

pub mod service;
pub mod model;

main.rs:

use mycrate::service;

fn main() {
    service::run();
}

👉 好处:

  • core 可复用
  • CLI / Web 共用逻辑

5)Workspace 多项目结构(大型系统)

workspace/
 ├── Cargo.toml
 ├── service-a/
 ├── service-b/
 ├── common/

特点:

  • 微服务架构
  • 多 crate 管理
  • 企业标准玩法

三、Rust 特有的“隐藏玩法”

1)trait + impl 分层

trait UserService {
    fn login(&self);
}

struct UserServiceImpl;

impl UserService for UserServiceImpl {
    fn login(&self) {}
}

👉 类似 Java interface + implementation


2)mod + pub 控制封装

mod user {
    fn private_fn() {}

    pub fn public_fn() {}
}

👉 Rust 的“权限系统”比 Java 更严格


3)宏组织代码(进阶)

macro_rules! create_service {
    () => {
        fn run() {
            println!("service running");
        }
    };
}

四、总结(重点记住)

Rust 代码结构可以归纳为 4 种主流玩法:

⭐ 小项目

  • 单文件 + mod

⭐ 中型项目(推荐)

  • 按功能模块拆分(user/order/payment)

⭐ 企业级

  • DDD 分层(domain/application/infrastructure)

⭐ 超大型系统

  • Workspace + 多 crate 微服务

更多推荐