# xinhou-actix-admin **Repository Path**: xx8864/xinhou-actix-admin ## Basic Information - **Project Name**: xinhou-actix-admin - **Description**: 本项目基于 Rust+Actix+sqlx 框架开发的后台管理系统,该版本已升级到Rust 1.75.0 & Actix 4.8.0版本,旨在为多语言开发者(Java、Kotlin、Python、PHP、Rust)提供一个统一的后台管理系统的模板,屏蔽个语言的编程差异,尽可能的简化快速构建微服务系统。 - **Primary Language**: Rust - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2024-10-28 - **Last Updated**: 2024-11-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Xinhou Actix Admin V1.0.0 项目文档 ## 介绍 本项目基于Rust语言的Actix框架开发的后台管理系统,该版本已升级到Rust 1.79.0版本,旨在为多语言开发者(Java、Kotlin、Python、PHP、Rust)提供一个统一的后台管理系统的模板,屏蔽个语言的编程差异,尽可能的简化快速构建微服务系统。 ## 更新情况 ### 2024.07.12 开发需求 - [P0] 在Build阶段加入 自动扫描Controller动态路由的功能,并注册到Rocket【完成】 - [P0] 完善Logger的日志输出 & 控制台输出【完成】 - [P0] 完善Entity的方法支持自动生成字段【完成】 ### 2024.07.05 开发需求 - [P0] 进一步完善日志格式的统一,底层全部使用logger替代【完成】 - [P0] 完善代码自动生成部分功能【完成】 - [P0] 完善数据库连接池部分的多线程&共享部分功能【完成】 - [P0] 完善上下文的多线程&共享部分功能【完成】 - [P0] 完善上下文的配置参数统一使用ObjectDict类【完成】 - [P0] 完善初始化时的Welcome部分的功能【完成】 - [P0] 完善数据库执行SQL时的Session的拦截器部分功能【完成】 - [P0] 完善数据库自动生成表部分功能【完成】 - [P0] 去掉初始化阶段的多个实现中的函数部分功能【完成】 - [P0] 完善Redis的连接池多线程&共享部分功能【完成】 - [P0] 修复yml配置项目版本时version填入数字导致swagger不能生成的问题【完成】 - [P0] 升级框架部分依赖包的版本【完成】 - [P0] 修复远程调用时缺失配置信息的异常错误 & 远程调用错误异常【完成】 ## 内置功能 - [x] 应用分层管理:系统框架支持多apps应用场景聚合、微服务场景、单项目场景业务;同时支持通用业务逻辑business共享; - [x] 支持多模块apps应用集成调用; - [x] 支持Controller & ParamsModel 自定义接口模型; - [x] 支持Routes路由自定义函数注册; - [x] 支持Business通用业务逻辑开发,支持MVC模式; - [x] 支持Remote远程调用,同时实现重试、降级、超时异常处理; - [x] 支持R统一返回泛型&业务逻辑调用ResModel泛型支持; - [x] Swagger接口文档编写,支持入参出参泛型; - [x] 实现框架急提供yml配置文件管理:支持yml配置文件,支持环境版本,实现逻辑与springboot方式相似; - [x] Nacos集成管理:使用Nacos的注册中心&配置中心,同时实现微服务注册&心跳&调用、支持接口的重试、降级、超时的处理; - [x] 全局自动化路由管理:系统框架可以自动扫描项目下的apps下所有Controller接口; - [x] 全局AppContextBeans上下文管理:提供系统级别的全局上下文支持,提供注册实例化对象全局调用; - [x] 全局sqlx支持:框架支持面向sql的链式操作,只需要简单继承即可实现CRUD操作;同时支持事务处理; - [x] 全局操作日志:系统提供日志配置&自动生成。 - [x] 全局异常处理支持:提供了全局的异常处理、业务异常处理、自定义异常处理;同时全局拦截异常&验证错误,并提供统一错误码; - [x] 全局装饰器:提供全局装饰器,可以使接口、函数等实现 AOP 支持; - [x] 全局数据库&连接池管理:支持MySQL、PgSQL、Oracle等数据库,并内置连接池; - [x] 全局缓存&连接池管理:系统初始化支持配置缓存&连接池,也支持Utils调用; - [x] 文件上传:图片、表格、文档等文件上传下载 & OSS 上传存储 示例; - [x] Excel文件:excel&cvs数据文件导入导出下载示例; - [x] Word文件:文档的模板生成及下载示例; - [x] PDF文件:模板生成PDF及下载示例; - [x] 代码生成:提供代码自动生成,支持Entity、Dao、Service、Controller 及 前端页面模板生成; - [x] docker&k8s:支持docker镜像生成 & k8s部署 及 docker镜像&docer-compose部署; - [x] 支持服务器代理访问; ## 依赖包 - 编译打包 ~~~shell (venv) shenpeng@MacBook-Pro-2023 xinhou-actix-admin % cargo build # 编译打包 (venv) shenpeng@MacBook-Pro-2023 xinhou-actix-admin % cargo clean build # 清理&编译打包 (venv) shenpeng@MacBook-Pro-2023 xinhou-actix-admin % cargo clean # 清理编译代码 ~~~ - 命令行启动项目 ~~~shell (venv) shenpeng@MacBook-Pro-2023 xinhou-actix-admin % cargo run ~~~ ## Cargo私服配置 > 注:需要在当前用户的目录下找到 .cargo文件夹,并修改config配置文件,同时将配置写入文件;私服账号密码由运维提供; ~~~shell (venv) MacBook-Pro-3:marmot-framework shenpeng$ cd ~/.cargo (venv) MacBook-Pro-3:marmot-framework shenpeng$ vi config # 将配置内容复制粘贴到config文件 [source.crates-io] # 指定镜像 replace-with = 'ustc' # 你可以把 tuna 替换为 ustc 或 sjtu 或 rustcc # 中国科学技术大学 [source.ustc] registry = "git://mirrors.ustc.edu.cn/crates.io-index" # 上海交通大学 [source.sjtu] registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index" # 清华大学 [source.tuna] registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git" # rustcc社区 [source.rustcc] registry = "https://code.aliyun.com/rustcc/crates.io-index.git" (venv) shenpeng@Mac-Studio xinhou-openai-admin % cargo clean build # 通过更新cargo版本测试结果 (base) shenpeng@Mac-Studio xinhou-actix-admin % cargo run /Users/shenpeng/Works/workspaces-rust/xinhou-actix/xinhou-actix-admin/src/banner.txt contains: /Users/shenpeng/Works/workspaces-rust/xinhou-actix-admin/target/debug/xinhou-actix-admin /Users/shenpeng/Works/workspaces-rust/xinhou-actix-admin/banner.txt contains: _ _ _ _ _ _ __ __ (_) _ __ | |__ ___ _ _ __ _ ___ | |_ (_) __ __ __ _ __| | _ __ ___ (_) _ __ \ \/ / | | | '_ \ | '_ \ / _ \ | | | | _____ / _` | / __| | __| | | \ \/ / _____ / _` | / _` | | '_ ` _ \ | | | '_ \ > < | | | | | | | | | | | (_) | | |_| | |_____| | (_| | | (__ | |_ | | > < |_____| | (_| | | (_| | | | | | | | | | | | | | /_/\_\ |_| |_| |_| |_| |_| \___/ \__,_| \__,_| \___| \__| |_| /_/\_\ \__,_| \__,_| |_| |_| |_| |_| |_| |_| ================================================ Welcome to xinhou-actix-admin ! ================================================== Application: xinhou-actix-admin Version: V1.0.0 芯后智能科技<开发版> Author: shenpeng Email: sp_hrz@qq.com DEPLOY_ENV: dev =============================================================== End ============================================================== [2024-07-05T08:43:58Z INFO actix_server::builder] starting 16 workers [2024-07-05T08:43:58Z INFO xinhou_actix_admin] Starting HTTP server at http://0.0.0.0:8080 [2024-07-05T08:43:58Z INFO actix_server::server] Actix runtime found; starting in Actix runtime (base) shenpeng@Mac-Studio xinhou-actix-admin % ~~~