logo
0
1
WeChat Login
docs: 添加简化的 README.md 和详细文档

LibACG

多媒体文件处理插件系统 — 解压、转码、图片处理,一键搞定。

架构概览

LibACG 采用四层架构,职责清晰、部署灵活:

┌─────────────────────────────────────────────────────────┐ │ Layer 4: Job (编排层) │ │ 用户通过 YAML 定义 Stage 的执行顺序和依赖关系 (DAG) │ ├─────────────────────────────────────────────────────────┤ │ Layer 3: Server (调度层) │ │ 解析 Job DAG,按 Stage 能力匹配 Worker,分发任务 │ ├─────────────────────────────────────────────────────────┤ │ Layer 2: Worker (执行层) │ │ 加载 Plugin,注册支持的 Stages,实际执行分配到的任务 │ ├─────────────────────────────────────────────────────────┤ │ Layer 1: Plugin (功能层) │ │ 以 PyPI 包形式分发,提供 Stage 的具体实现 │ └─────────────────────────────────────────────────────────┘

快速开始

Docker Compose 一键启动

# 根据需要修改 docker-compose.yml 中的挂载路径 docker compose up -d

启动后包含:

  • Server (localhost:8080) — 任务调度中心
  • Worker (video) (localhost:8081) — 视频处理 Worker
  • Worker (image) (localhost:8082) — 图片处理 Worker

手动构建

# 安装依赖 uv sync # 启动 Server uv run --package libacg-server acg-server start # 启动 Worker (分布式模式) uv run --package libacg-worker python -m libacg_worker # Worker Standalone 模式 (离线执行) uv run --package libacg-worker acg-cli run job.yaml --input ./source --output ./output

项目结构

libacg-new/ ├── packages/ │ ├── libacg-common/ # 公共模型、插件基类、Job 解析器 │ ├── libacg-server/ # Server 调度层 (FastAPI + SQLite) │ └── libacg-worker/ # Worker 执行层 (插件加载、任务执行) ├── plugins/ │ ├── libacg-ffmpeg/ # 视频转码插件 (ffmpeg) │ ├── libacg-libjxl/ # JPEG XL 图片转换插件 (libjxl) │ └── libacg-unrar/ # RAR 解压插件 (unrar) ├── jobs/ # Job YAML 定义文件 ├── configs/ # 配置文件 (存储路径等) ├── docker/ # Dockerfile ├── docker-compose.yml # 编排文件 └── docs/ # 详细文档

技术栈

  • Python 3.14 + uv (依赖管理)
  • FastAPI (Web 框架) + Uvicorn (ASGI)
  • SQLite (aiosqlite) (数据持久化)
  • Pydantic 2.10+ (数据验证)
  • Cyclopts (CLI 框架)
  • Docker (容器化部署)

文档

文档说明
架构设计四层架构详细设计、设计哲学
配置说明环境变量、存储路径配置
Job 定义Job YAML 语法与示例
插件系统内置插件介绍、开发自定义插件
API 参考RESTful API 端点一览
离线执行Standalone 模式使用方法

License

Private