# apijson-rust
**Repository Path**: APIJSON/panda-base
## Basic Information
- **Project Name**: apijson-rust
- **Description**: 腾讯 APIJSON Rust 版 - 🏆 实时 零代码、全功能、强安全 ORM 库 🚀 后端接口和文档零代码,前端(客户端) 定制返回 JSON 的数据和结构
- **Primary Language**: Rust
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: https://gitee.com/Tencent/APIJSON
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-09-01
- **Last Updated**: 2026-01-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# APIJSON-Rust
腾讯 APIJSON Rust 版 - 🏆 实时 零代码、全功能、强安全 ORM 库 🚀
后端接口和文档零代码,前端(客户端) 定制返回 JSON 的数据和结构。
包含一个优雅、高性能的多数据源管理系统,支持 MySQL, PostgreSQL 的统一管理和操作。
## 🚀 特性
- **多数据源支持**: 同时管理多个 MySQL 和 PostgreSQL 数据源
- **统一接口**: 提供统一的数据库操作接口,屏蔽底层数据库差异
- **智能缓存**: 内置高效的元数据缓存系统,支持数据源、数据库、表的关联查询
- **配置驱动**: 基于 YAML 配置文件的声明式配置管理
- **异步支持**: 基于 Tokio 的异步运行时,支持高并发操作
- **类型安全**: 利用 Rust 的类型系统确保运行时安全
## 🛠️ 安装和配置
### 1. 克隆项目
```bash
git clone
cd panda-base
```
### 2. 安装依赖
```bash
cargo build
```
### 3. 配置数据源
编辑 `application.yaml` 文件:
```yaml
datasources:
# MySQL 数据源
- name: ds_mysql
kind: mysql
username: root
password: "123456"
url: "mysql://root:123456@localhost:3306"
database: ["db1", "db2", "db3"]
default: true
# PostgreSQL 数据源
- name: ds_pg
kind: postgres
username: postgres
password: "123456"
url: "postgres://postgres:123456@localhost:5432"
database: ["db4", "db5", "db6"]
default: false
```
### 4. 运行应用
```bash
cargo run
```
## 📊 性能特性
- **连接池**: 自动管理数据库连接池,支持高并发访问
- **智能缓存**: 元数据缓存命中率 > 95%
- **异步操作**: 基于 Tokio 的异步 I/O,支持数千并发连接
- **内存优化**: 使用 `Arc` 和 `RwLock` 实现高效的内存共享
## 🔧 配置选项
### 数据源配置
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `name` | String | ✅ | 数据源唯一名称 |
| `kind` | Enum | ✅ | 数据库类型 (mysql/postgres) |
| `username` | String | ✅ | 数据库用户名 |
| `password` | String | ✅ | 数据库密码 |
| `url` | String | ✅ | 数据库连接 URL |
| `database` | Array | ✅ | 数据库名称列表 |
| `default` | Boolean | ✅ | 是否为默认数据源 |
### URL 格式
- **MySQL**: `mysql://[username:password@]host:port[/database]`
- **PostgreSQL**: `postgres://[username:password@]host:port[/database]`
## 🚨 注意事项
1. **唯一性约束**:
- 数据源名称必须唯一
- 必须有且仅有一个默认数据源
2. **性能优化**:
- 合理配置连接池大小
- 定期清理缓存数据
- 监控数据库连接状态
## 🗺️ 路线图
- [ ] 支持更多数据库类型 (SQLite, Oracle)
- [ ] 添加数据库迁移工具
- [ ] 实现读写分离
- [ ] 添加监控和指标收集
- [ ] 支持分布式缓存
- [ ] 添加 Web 管理界面
---
## 测试环境运行
初始化数据库
```bash
docker compose up -d
```
## 我要赞赏
创作不易,右上角点 ⭐Star 来支持/收藏下吧,谢谢 ^_^
https://gitee.com/APIJSON/panda-base