架构总览

Spak 采用四层分层架构设计,各层职责清晰,下层为上层提供服务。

四层架构

接入层(Access Layer)

基于 Cobra 框架提供 CLI 命令,Chi 框架提供 HTTP REST API,gorilla/websocket 提供 WebSocket 实时通信。

运行时层(Runtime Layer)

管理插件的加载、依赖解析和生命周期。核心模块包括 Loader、DepResolver、Python 运行时和事件总线。

安全层(Security Layer)

提供 Ed25519 签名验证、AES-256-GCM 加密解密、审计日志等安全能力。

包格式层(Package Format Layer)

定义 .pak 插件包的标准格式,包括 Magic、Manifest、公钥、签名和加密载荷的结构。

核心模块

模块路径职责
CLIinternal/cli/用户交互命令
Engineengine/加密原语和包格式
Runtimeinternal/runtime/插件加载和生命周期
Packageinternal/pkg/.pak 打包和验证
Securityinternal/security/密钥和审计日志
APIinternal/api/HTTP/WebSocket 服务
Configinternal/config/用户配置管理
i18ninternal/i18n/国际化支持

数据流

插件打包流程

源码目录 (manifest.json + main.py)
  → spak pkg pack
  → 解析 manifest
  → AES-256-GCM 加密 Python 源码
  → Ed25519 签名
  → 写入 .pak 文件

插件加载流程

spak serve
  → Loader.Scan()
  → DepResolver 扫描 plugins/ 目录
  → 解析每个 .pak 的头部 manifest
  → 拓扑排序(依赖优先)
  → 依次解密载荷
  → Python 运行时执行
依赖解析支持循环依赖检测和缺失依赖告警。
← 上一章:快速开始 下一章:插件开发 →