
开源https://gitee.com/leijmdas/ruwebframe.gitruwebframe是基于Rustactix-web的工业级Web开发框架包含四大核心模块1) rucmd命令行工具支持加密/解密、配置查看和依赖注入代码生成2) rulog日志模块提供分级日志、文件轮转和控制台输出3) rudi依赖注入容器实现类似Spring IoC的功能支持单例/多例注册4) rucfg配置管理基于YAML支持多环境切换和环境变量解析。各模块通过DI容器协同工作形成完整的基础设施层定位为对标Go语言的quot;开发者神器quot;。ruwebframe has 4 core modules:1. **rucmd** - 命令行工具模块提供命令行接口支持 enc/dec加密/解密、cfg配置查看、rudi依赖注入代码生成等子命令2. **rulog** - 日志模块基于 flexi_logger 实现支持日志分级info/error/debug、文件轮转、控制台输出3. **rudi** - 依赖注入DI模块类似 Java Spring IoC 容器支持单例/多例注册、全局 Bean 获取、自动代码生成4. **rucfg** - 配置管理模块基于 YAML 配置文件支持多环境切换dev/test/prod使用 spicex 解析环境变量根据对代码库的深入分析以下是 ruwebframe 四大核心模块的功能清单---## ruwebframe 功能清单**ruwebframe** 是一个基于 Rustactix-web的 Web 应用开发框架定位为工业级世匠、开发者神器对标 Go 的 goweb3 框架。---### 1. rucmd — 命令行工具模块[rucmd.rs](file:///E:/soft/gitee.com/ruwebframe/src/rucmd/rucmd.rs)提供统一的命令行入口支持以下子命令| 子命令 | 功能 | 说明 ||--------|------|------|| enc | 加密 | 调用 ruenc 模块对字符串进行加密 || dec | 解密 | 调用 ruenc 模块对字符串进行解密 || cfg | 查看配置 | 读取并打印当前 YAML 配置的 JSON 格式 || rudi list | 列出结构体 | 扫描 ./src 下所有 Rust 结构体 || rudi all | 批量生成 DI | 为所有结构体自动生成 _init.rs 依赖注入代码 || rudi name | 单个生成 DI | 为指定名称的结构体生成 _init.rs || help | 帮助 | 打印帮助信息 || version | 版本 | 打印版本信息 |核心设计通过 ctor 机制在程序启动时自动注册为单例 Bean存入全局 DI 容器。---### 2. rulog — 日志模块[rulog.rs](file:///E:/soft/gitee.com/ruwebframe/src/rulog/rulog.rs)基于 flexi_logger 实现的企业级日志系统| 功能 | 说明 ||------|------|| **日志分级** | 支持 info、error、debug 三个级别 || **双输出** | 同时输出到控制台println!和日志文件 || **文件轮转** | 单文件超过 50MB 自动轮转保留最近 5 个归档 || **自定义格式** | [2026-08-01 14:30:25.123] [INFO] module:line - message || **日志路径** | 统一输出到 ./logs/app.log || **便捷函数** | info()、error()、debug()、info2()、error2()、debug2() || **LogInfo 辅助** | 支持链式拼接日志信息通过 LogInfo 结构体合并多个日志段 |通过 OnceLock 实现日志配置的全局懒加载确保整个应用生命周期内只初始化一次。---### 3. rudi — 依赖注入DI模块[mod.rs](file:///E:/soft/gitee.com/ruwebframe/src/rudi/mod.rs)对标 Java Spring IoC 容器的 Rust 实现是整个框架的核心基础设施| 子模块 | 功能 | 说明 ||--------|------|------|| **dicontainer** | IoC 容器核心 | Container 结构体支持 Factory多例和 Singleton单例两种模式 || **direg** | 全局静态门面 | 基于 OnceLockRwLockContainer 提供全局唯一容器任意位置可通过 get_bean::T(key) 获取 Bean || **difactroy** | DI 代码工厂 | 自动扫描 ./src 下所有 .rs 文件中的结构体通过 AST 解析后自动生成 _init.rs 依赖注入代码 || **ditemplate** | 模板引擎 | 将 struct_init.template 模板文件与结构体信息结合渲染生成初始化代码 || **ditrait** | 容器抽象层 | BeanRegistry trait 定义容器行为规范便于扩展和 mock || **ruast** | AST 解析 | 基于 syn crate 解析 Rust 源码提取结构体和 trait 信息 || **didto** | 数据传输对象 | StructInfo 等 DTO承载结构体元信息用于代码生成 |**设计亮点**- 线程安全Arc Mutex RwLock OnceLock- 编译期自动注册ctor inventory 机制- 零配置启动一行 #[ctor(unsafe)] 即可自动注册 Bean---### 4. rucfg — 配置管理模块[ruconfig.rs](file:///E:/soft/gitee.com/ruwebframe/src/rucfg/ruconfig.rs)基于 YAML 的多环境配置管理系统| 功能 | 说明 ||------|------|| **多环境切换** | 通过 env.yml 中的 Env 字段自动加载 ichub-{env}.yml如 ichub-dev.yml、ichub-postgres.yml || **环境变量解析** | 支持 ${VAR_NAME} 语法运行时替换环境变量 || **YAML → JSON** | 提供 read2json() 方法将配置转为 JSON 字符串 || **环境判断** | ifDev()、ifTest()、ifMaster() 等便捷函数 || **配置结构** | 包含 software软件信息、database数据库、redis、web服务器配置等完整 DTO || **线程安全** | 使用 ArcMutexCfgDto 保证并发读取安全 || **懒加载** | 首次访问时解析配置文件之后直接返回缓存 |**配置解析链**env.yml → Env 字段 → 拼接文件名 → 解析 YAML → 替换环境变量 → CfgDto---### 模块依赖关系rucmd ──→ rucfg (读配置)──→ rulog (打日志)──→ rudi (代码生成)──→ ruenc (加解密)rudi ──→ rulog (打日志)──→ rucfg (读配置模板)所有模块 ──→ rudi/direg (全局 DI 容器统一管理 Bean)四个模块协同工作共同构成了 ruwebframe 的核心基础设施层。