cassie_axum
介绍
基于rust axum 完成web端手脚架 基础权限,用户,缓存,验证,代码生成
js运行时 v8引擎 deno使用
rust axum web 是rust开发的web手脚架项目
前端项目
项目讲解
软件架构
软件架构说明
- rust web框架
- web:axum
- 数据库:mysql
- Orm:Ribatis
- RBAC:cabin-rs
- 验证码:captcha
- 数据验证:validator
开发计划
- 基础缓存定义,ORM框架定义
- 返回数据格式定义
- 完成casbin的基础RABC权限集成
- TODO 微服务集成 KONG网关集成
- nacos注册中心集成
- 动态表单实现
- 微信小程序工具集开发
- 租户化实现
- javascript动态脚本集成
已完成
- 基础缓存定义,redis
- orm框架选用Ribatis
- casbin-rs集成,适配器编写
- 用户权限jwt 融合casbin-rs
- 完成nacos注册和心跳集成
- 动态表单实现
- 租户化实现
- javascript动态脚本集成
使用说明
- 初始化DB,添加配置
导入db/cassie_admin.sql文件
配置application.yml - 构建并启动项目
cargo build
cago run - 启动前端项目https://gitee.com/stringlxd/cassie_admin
默认端口 9999
目录结构
cassie_axum
├─ axum.postman_collection.json //postmain测试api
├─ Cargo.lock
├─ Cargo.toml //核心包配置
├─ cassie_casbin_adapter
│ ├─ Cargo.toml
│ └─ src
│ ├─ action.rs //casbin操作定义
│ ├─ cici_adapter.rs//适配器
│ ├─ lib.rs
│ └─ models.rs //casbin模型定义
├─ cassie_common
│ ├─ Cargo.toml
│ └─ src
│ ├─ error.rs
│ ├─ lib.rs
│ └─ utils
│ ├─ bencher.rs
│ ├─ mod.rs
│ ├─ password_encoder.rs //密码加密解密
│ └─ string.rs//字符串工具类
├─ cassie_engine //规则引擎
├─ cassie_ops //操作 宏定义
├─ cassie_config
│ ├─ Cargo.toml
│ └─ src
│ ├─ config.rs//核心配置类
│ └─ lib.rs
├─ cassie_domain
│ ├─ Cargo.toml
│ └─ src
│ ├─ dto
│ │ ├─ asi_dto.rs
│ │ ├─ mod.rs
│ │ ├─ sign_in.rs
│ │ ├─ sys_auth_dto.rs
│ │ ├─ sys_dict_dto.rs
│ │ ├─ sys_event_dto.rs
│ │ ├─ sys_log.rs
│ │ ├─ sys_menu_dto.rs
│ │ ├─ sys_params_dto.rs
│ │ ├─ sys_role_dto.rs
│ │ └─ sys_user_dto.rs
│ ├─ entity
│ │ ├─ asi_entitys.rs
│ │ ├─ event.rs
│ │ ├─ log.rs
│ │ ├─ mod.rs
│ │ ├─ pagedata.rs
│ │ ├─ sms.rs
│ │ └─ sys_entitys.rs
│ ├─ lib.rs
│ ├─ request
│ │ ├─ mod.rs
│ │ ├─ request_model.rs//thread_local 用户信息
│ │ └─ tree.rs //TreeService 树节点生成
│ └─ vo
│ ├─ jwt.rs
│ ├─ mod.rs
│ └─ sign_in.rs
├─ cassie_orm
│ ├─ Cargo.toml
│ └─ src
│ ├─ dao
│ │ ├─ mapper.rs//rbaits 核心实现
│ │ └─ mod.rs
│ ├─ lib.rs
│ └─ mapper
│ └─ menu_mapper.html//sql文件映射
├─ cassie_rules
│ ├─ Cargo.toml
│ └─ src
│ ├─ core
│ │ ├─ mod.rs
│ │ └─ rules.rs
│ ├─ lib.rs
│ └─ secript.rhai
├─ cassie_tests
│ ├─ Cargo.toml
│ └─ src
│ ├─ lib.rs
│ └─ main.rs
├─ cassie_upload
│ ├─ Cargo.toml
│ └─ src
│ ├─ lib.rs
│ └─ upload
│ ├─ mod.rs
│ ├─ oss_service.rs//oss上传核心实现
│ └─ upload_service.rs
├─ cassie_web
│ ├─ application.yml
│ ├─ auth_config
│ │ └─ rbac_with_domains_model.conf
│ ├─ Cargo.toml
│ └─ src
│ ├─ admin //后台管理resource核心实现
│ │ ├─ asi //动态表单相关
│ │ │ ├─ asi_group_column_resource.rs
│ │ │ ├─ asi_group_resource.rs
│ │ │ ├─ asi_group_values_resource.rs
│ │ │ └─ mod.rs
│ │ ├─ mod.rs
│ │ └─ sys //系统相关
│ │ ├─ mod.rs
│ │ ├─ sys_auth_resource.rs
│ │ ├─ sys_dict_type_resource.rs
│ │ ├─ sys_dict_value_resource.rs
│ │ ├─ sys_menu_resource.rs
│ │ ├─ sys_params_resource.rs
│ │ ├─ sys_role_resource.rs
│ │ ├─ sys_upload_resource.rs
│ │ └─ sys_user_resource.rs
│ ├─ api
│ │ └─ mod.rs
│ ├─ cici_casbin //casbin 实现
│ │ ├─ casbin_service.rs
│ │ └─ mod.rs
│ ├─ config
│ │ ├─ log.rs
│ │ └─ mod.rs
│ ├─ initialize //系统启动初始化相关
│ │ ├─ casbin.rs
│ │ ├─ config.rs
│ │ ├─ database.rs
│ │ ├─ event.rs
│ │ ├─ mod.rs
│ │ ├─ rules.rs
│ │ └─ service.rs
│ ├─ interceptor
│ │ ├─ interceptor.rs //租户拦截器
│ │ └─ mod.rs
│ ├─ lib.rs
│ ├─ main.rs
│ ├─ middleware //中间件实现
│ │ ├─ auth.rs //权限拦截实现
│ │ ├─ event.rs //操作日志拦截器
│ │ └─ mod.rs
│ ├─ nacos
│ │ └─ mod.rs
│ ├─ observe //event 核心实现
│ │ ├─ consumer.rs
│ │ ├─ event.rs
│ │ └─ mod.rs
│ ├─ routers
│ │ ├─ admin.rs //管理端路由
│ │ ├─ api.rs //api路由
│ │ └─ mod.rs
│ └─ service //service核心包
│ ├─ asi
│ │ ├─ asi_service.rs
│ │ ├─ asi_validation.rs
│ │ └─ mod.rs
│ ├─ event
│ │ ├─ event_service.rs
│ │ └─ mod.rs
│ ├─ log
│ │ ├─ log_service.rs
│ │ └─ mod.rs
│ ├─ mod.rs
│ └─ sys
│ ├─ cache_service.rs
│ ├─ crud_service.rs
│ ├─ mod.rs
│ ├─ redis_service.rs
│ ├─ sys_auth_service.rs
│ ├─ sys_dict_service.rs
│ ├─ sys_menu_service.rs
│ ├─ sys_params_service.rs
│ ├─ sys_role_data_scope_service.rs
│ ├─ sys_role_menu_service.rs
│ ├─ sys_role_service.rs
│ ├─ sys_role_user_service.rs
│ └─ sys_user_service.rs
├─ db
│ ├─ cassie_admin.sql //基础sql脚本
│ └─ cassie_admin_v1.sql
├─ LICENSE
└─ README.md
框架说明
管理员账号:admin/123456
测试账号:lixingdong1/123456
- https://casbin.org/docs/zh-CN/overview
- https://rbatis.github.io/rbatis.io/#/
- https://axum.rs/
- https://github.com/denoland/rusty_v8
- https://github.com/denoland/deno
参与贡献
String [email protected]
交流群:435604279
源码链接
感谢Ribatis作者
提示
代码每天都在更新,大家每天及时更新