# Easy-Admin-Rust **Repository Path**: suddenlyyo/easy-admin-rust ## Basic Information - **Project Name**: Easy-Admin-Rust - **Description**: Easy-Admin-Rust 是https://gitee.com/suddenlyyo/Easy-Admin.git的rust版本 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-13 - **Last Updated**: 2026-09-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: Rust ## README # Easy-Admin-Rust [Easy-Admin](https://gitee.com/suddenlyyo/Easy-Admin) 的 **Rust 版本**——对标 Java 端(Spring Boot 多租户后台管理平台)的原生 Rust 移植实现,在保持接口路径、数据模型、业务语义与 Java 端一致的前提下,使用 Rust 生态重建整套后端服务。 两个版本可独立部署,共用同一套数据库表结构与 Nacos 配置中心约定;接口层面与 Java 端互为镜像(URL、请求/响应包装、权限点、多租户语义均已对齐),前端无需区分后端实现。 ## 技术栈 | 维度 | 选型 | 对标 Java 端 | | --- | --- | --- | | Web 框架 | axum 0.7 + tokio | Spring Boot + Spring MVC | | 配置中心 | nacos-sdk(v2 gRPC) | Spring Cloud Alibaba Nacos | | 认证鉴权 | jsonwebtoken(RS256)+ Redis 会话 | Spring Security + JWT + Redis | | 数据库访问 | sqlx / SeaORM / Diesel 三实现(feature 互斥门控) | MyBatis | | 消息队列 | fe2o3-amqp(AMQP 1.0,对接 ActiveMQ Classic 5673 端口) | JMS(OpenWire 61616) | | 缓存/分布式锁 | deadpool-redis / redis-lock | Lettuce / Redisson | | 任务调度 | zx-common-xxljob | XXL-Job 执行器 | | Excel 导入导出 | easyexcel + zx-common-import-export | Alibaba EasyExcel + zx-common-import-export | | 数据权限 | sqlparser SQL 改写 | MyBatis 拦截器 SQL 注入 | | 日志 | tracing | SLF4J + Logback | ## 工作区结构(19 个 crate) ``` Easy-Admin-Rust/ ├── zx-common/ # 公共库 │ ├── zx-common-core # 核心枚举/常量/工具(AES、密码解密、SQL分批等) │ ├── zx-common-wrapper # 统一响应包装(ObjectWrapper/PageWrapper/ListWrapper) │ ├── zx-common-validation(+macros)# 参数验证体系(对齐 @ParameterValidation) │ ├── zx-common-tools # 通用工具(日期、ID生成等) │ ├── zx-common-async # 异步工具 │ ├── zx-common-redis(-lock) # Redis 访问与分布式锁 │ ├── zx-common-xxljob # XXL-Job 执行器接入 │ ├── zx-common-data-permission # 数据权限(SQL 改写注入) │ ├── zx-common-import-export # Excel 导入导出组件 │ └── zx-common-nacos # Nacos 配置中心接入 ├── zx-security/ # 安全体系 │ ├── zx-common-security # 登录上下文/JWT验签/Redis会话/Feign鉴权透传 │ └── zx-common-security-macros # @require_authority 权限点宏 └── zx-services/ # 业务服务 ├── zx-system-service-15776 # 系统服务:用户/角色/部门/菜单/岗位/字典/ │ # 参数/租户/套餐/模块/通知/日志等 15 域 ├── zx-notification-common # 通知公共库(实体/DAO/事件/渠道策略) ├── zx-notification-producer-15780 # 通知生产者:事件监听 + ActiveMQ 推送 ├── zx-notification-consumer-15781 # 通知消费者:六渠道消费(站内信/WS/邮件/短信/APP/微信) └── zx-encryption-service-15784 # 加密服务(骨架,认证已接入) ``` ## 仓储三实现架构 业务域的数据访问统一收敛到 repository trait,提供三种数据库实现,编译期 feature 三选一互斥(同时启用多个会触发中文 `compile_error!` 守卫): | feature | 实现 | 说明 | | --- | --- | --- | | `db-sqlx`(默认) | sqlx 手写 SQL | 包装既有 dao 层,生产推荐 | | `db-seaorm` | SeaORM 1.1 实体映射 | ORM 风格 | | `db-diesel` | Diesel 2.3 + diesel-async 0.9 | 同步 ORM + 异步扩展 | ```bash cargo check # 默认 db-sqlx cargo check --no-default-features --features db-seaorm cargo check --no-default-features --features db-diesel ``` ## 快速开始 ### 环境要求 - Rust(edition 2024,建议最新 stable) - MySQL / MariaDB(复用 Java 端数据库表结构) - Redis、Nacos 2.x、ActiveMQ Classic(需开启 AMQP 端口 5673) ### 配置 本地 `config.toml` 仅保留引导段(`[server]` / `[app]` / `[nacos]`),数据源、Redis、JWKS、MQ 等业务配置全部从 Nacos 合并配置提取;必需配置缺失即启动失败(fail-fast,对齐 Java 端 `optional:` 语义)。 ### 构建与运行 ```bash cargo build --release cargo run -p zx-system-service-15776 # 系统服务 cargo run -p zx-notification-producer-15780 # 通知生产者 cargo run -p zx-notification-consumer-15781 # 通知消费者 ``` 服务端口沿用 Java 端约定:系统服务 15776、通知生产者 15780、通知消费者 15781、加密服务 15784。 ## 开发规范 - 代码注释写在代码上一行(禁止行尾注释),中文注释 - 结构体独立成文件;VO 不落在业务层与控制器 - 配置文件所有条目必须带注释说明 - 工作区统一 edition 2024,保持 clippy 零警告、rustfmt 通过 详细开发指南见 [DEVELOPMENT_GUIDE.adoc](DEVELOPMENT_GUIDE.adoc)。 ## 许可证 [MIT](LICENSE)