内部模块总览
🗺️ snir 内部代码架构全景。
本文是各 pkg/* 模块的导航地图,每个模块都有独立详解页。
📁 源码目录:
pkg/
模块依赖
一次 SDK 调用穿越各层的典型时序:
模块速查
| 模块 | 源码 | 职责 | 详解 |
|---|---|---|---|
pkg/runner | runner/ | 浏览器驱动、池、截图、证据 | → |
pkg/scan | scan/ | 批量编排、目标展开 | → |
pkg/sdk | sdk/ | Go SDK | → |
pkg/api | api/ | HTTP API | → |
pkg/models | models/ | 数据模型 | → |
pkg/phash | phash/ | 感知哈希 | → |
pkg/techdetect | techdetect/ | 技术检测 | → |
pkg/database | database/ | SQLite 持久化 | → |
pkg/report | report/ | 报告/转换/合并 | → |
pkg/log | log/ | 日志门面 | → |
pkg/islazy | islazy/ | 工具函数 | → |
pkg/ascii | ascii/ | 终端艺术 | → |
分层
┌─────────────────────────────────────────┐
│ 接入层:cmd(CLI) / pkg/api(HTTP) │
├─────────────────────────────────────────┤
│ 编排层:pkg/sdk / pkg/scan │
├─────────────────────────────────────────┤
│ 执行层:pkg/runner (Driver/Pool/Writer) │
├─────────────────────────────────────────┤
│ 能力层:pkg/phash / pkg/techdetect │
│ pkg/database / pkg/report │
├─────────────────────────────────────────┤
│ 基础层:pkg/models / pkg/log │
│ pkg/islazy / pkg/ascii │
└─────────────────────────────────────────┘