proton v0.3.0
proton 从文件扫描工具重构为纯匹配引擎 SDK。所有数据采集、CLI、Runner 等高级功能已迁移至 found。
Breaking Changes
- 移除
Scanner.Scan()— 不再内置目录遍历 - 移除
ProcessFile()— 替换为ReadFile()+ScanData() - 移除 CLI 入口、
pkg/runner/、sysinfo/(迁移至 found) - FFI 移除内置模板,
ProtonNewScanner改为 path-based template.Execute切换到 Scanner 后端
SDK API
| 接口 | 模式 | 用途 |
|---|---|---|
ScanData([]byte, label, group) |
一次性,按行 | 文本匹配 |
ScanBlock([]byte, label, group) |
一次性,滑动窗口 | 二进制匹配 |
NewLineWriter(label, cb) |
流式 io.WriteCloser | 持续文本流 |
NewBlockWriter(label, cb) |
流式 io.WriteCloser | 持续二进制流 |
ReadFile(path, group) |
文件读取 | 返回 []FileContent |
三层匹配管线
prefilter (bytes.Contains) → Aho-Corasick DFA → RE2 regex
FFI (C ABI)
int ProtonNewScanner(const char* templatePath);
char* ProtonScanData(int handle, const void* data, int len, const char* label);
char* ProtonScanBlock(int handle, const void* data, int len, const char* label);
void ProtonFreeScanner(int handle);
void ProtonFreeString(char* s);支持 Python/Rust/C/C++ 等任何 C FFI 语言集成。
Template API
tmpl.Compile(opts)
tmpl.Execute(path) // 文件扫描
tmpl.ScanData(data, label) // 文本匹配
tmpl.ScanBlock(data, label) // 二进制匹配