Skip to content

项目结构

EdgeChat 采用前后端分离的 Monorepo 结构,核心代码主要分为 frontend/worker/

text
cfchat/
├─ frontend/          # Vue 前端
│  ├─ src/
│  │  ├─ demo/        # 浏览器内存模拟后端
│  │  └─ runtime.js   # 生产运行时适配器
│  ├─ vite.config.js
│  └─ vite.demo.config.js
├─ worker/            # Cloudflare Worker 后端
│  ├─ src/
│  ├─ migrations/
│  └─ schema.sql
├─ android/           # 暂时弃用的 Kotlin + Jetpack Compose 原生客户端
│  └─ app/            # 单模块应用,按 core/feature/ui 分包
├─ capacitor/         # 当前主要发行的 Capacitor Android 客户端,内置 Vue Web UI
│  └─ android/        # 少量 Kotlin:文件选择、通知和系统跳转
├─ docs/api/          # OpenAPI 3.1 与 WebSocket v1 契约
├─ .github/
│  └─ workflows/
│     ├─ deploy-worker.yml
│     ├─ deploy-demo.yml
│     ├─ android-ci.yml
│     ├─ capacitor-android-ci.yml
│     └─ android-release.yml
├─ wrangler.toml
├─ wrangler.demo.toml
├─ package.json
└─ README.md

关键目录

  • frontend/src/:页面、路由、状态和 WebSocket 相关逻辑
  • worker/src/:认证、数据库、接口和 Durable Objects
  • worker/schema.sql:D1 初始结构
  • android/app/:暂时弃用的原生 Android 应用,保留 Room、WorkManager 与 Compose 实现供验证
  • capacitor/:当前主要发行版,打包 Vue 前端并允许用户填写自托管服务地址
  • docs/api/:移动 HTTP 和 WebSocket 的版本化协议契约
  • .github/workflows/deploy-worker.yml:GitHub Actions 部署流程
  • frontend/src/demo/:纯前端 demo 的 fixtures、内存 API 和模拟实时连接
  • .github/workflows/deploy-demo.yml:只手动触发的独立 demo 部署流程
  • .github/workflows/android-ci.yml:Android 单元测试、Lint 与 Debug APK 构建
  • .github/workflows/capacitor-android-ci.yml:Capacitor Web 构建、Android 单元测试、Lint 与 Debug APK 构建
  • .github/workflows/android-release.yml:主要 Capacitor 客户端的签名 APK/AAB、校验文件与 GitHub Release
  • wrangler.demo.toml:不绑定数据资源的 demo 静态 Worker 配置

资源分工

  • D1:用户、群组、成员关系、消息
  • KV:登录会话
  • R2:文件和头像
  • Durable Objects:实时房间

群组永久删除会立即清理 D1 中的群组、消息、成员、已读及关联投影;附件 key 进入既有 pending_r2_delete 队列,由定时 GC 核对引用后分批清理 R2 与 uploaded_filesgeneral 系统群不受影响。