https://github.com/chenbimo/bunpii
BunPii - 为 Bun 专属打造的 API 接口框架核心引擎,无任何依赖。
https://github.com/chenbimo/bunpii
Last synced: 10 months ago
JSON representation
BunPii - 为 Bun 专属打造的 API 接口框架核心引擎,无任何依赖。
- Host: GitHub
- URL: https://github.com/chenbimo/bunpii
- Owner: chenbimo
- License: apache-2.0
- Created: 2025-06-14T00:01:11.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-03T07:37:13.000Z (12 months ago)
- Last Synced: 2025-07-03T08:39:18.993Z (12 months ago)
- Language: JavaScript
- Homepage: https://chensuiyi.me
- Size: 331 KB
- Stars: 6
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# BunPii
BunPii - 为 Bun 专属打造的 API 接口框架核心引擎
## 特性
- 🚀 基于 Bun 运行时,性能卓越
- 📦 零依赖设计,轻量级框架
- 🔌 插件系统,支持自定义执行顺序
- 🔒 内置 JWT 认证支持
- 📁 内置文件上传功能
- 🌐 CORS 跨域支持
- 📝 结构化日志系统
- 💾 Redis 缓存支持 (可回退到内存缓存)
- 🛣️ 简洁的路由系统
- ⚡ ESM 模块支持
## 基本用法
```javascript
import BunPii from './main.js';
const app = new BunPii({
port: 3000,
host: 'localhost'
});
// 添加路由
app.get('/hello', async (context) => {
return { message: 'Hello from BunPii Core!' };
});
// 启动服务器
await app.listen();
```
## 插件系统
内置插件按以下顺序执行:
1. **Redis 插件** (order: -1) - 缓存支持
2. **CORS 插件** (order: 1) - 跨域处理
3. **Logger 插件** (order: 0) - 日志记录
4. **JWT 插件** (order: 2) - 认证支持
5. **Upload 插件** (order: 3) - 文件上传
### 创建自定义插件
```javascript
const myPlugin = {
name: 'my-plugin',
order: 5,
async handler(context) {
// 插件逻辑
console.log('Processing:', context.request.url);
}
};
app.use(myPlugin);
```
## API 接口
### 健康检查
- `GET /health` - 基础健康检查
- `GET /status` - 详细状态信息
- `GET /info` - 系统信息
### 文件操作
- `POST /upload` - 文件上传
- `GET /files` - 文件列表
- `GET /files/:filename` - 文件信息
- `GET /download/:filename` - 文件下载
- `DELETE /files/:filename` - 删除文件
## 配置
通过构造函数配置或 `setConfig` 方法:
```javascript
const app = new BunPii({
port: 3000,
host: 'localhost'
});
// 或者
app.setConfig('cors.origin', '*');
app.setConfig('upload.maxSize', 10 * 1024 * 1024);
```
## 许可证
MIT License