Magika 是 Google 出的 AI 文件类型检测工具:用一个高度优化的小型深度学习模型(仅几 MB)在毫秒级、单 CPU 上也能精确识别文件内容类型。它在约 1 亿样本、200+ 内容类型(二进制 + 文本)上训练评测,测试集平均约 99% 准确率,尤其在文本类型上明显优于传统方法(如 libmagic/file 命令)。它已在 Google 内部大规模用于把 Gmail、Drive、Safe Browsing 的文件路由到正确的安全与内容策略扫描器,每周处理上千亿样本,并集成进 VirusTotal、abuse.ch。CLI 用 Rust,另有 Python API 与 Rust/JS/Go 绑定。Apache-2.0,研究论文发表于 ICSE 2025。
来源:官方 README 与文档入口 查看 GitHub 仓库 →约 1.7 万星、自 2023 年就存在并持续维护。热度来自它精准解决了一个老问题:传统 file/libmagic 靠魔数和规则、对文本和混淆文件常出错,而 Magika 用小而快的深度模型把『判断这是什么文件』做到 99% 准确、毫秒级、单 CPU 可跑,还有 Google 的大规模生产验证和 ICSE 论文背书,安全/取证/数据管线领域都用得上。
来源:官方 README 与文档入口自定义深度模型仅几 MB,模型加载后每文件推理约 5ms,单 CPU 即可;推理时间近乎与文件大小无关——只用文件内容的有限子集,可同时处理上千文件、支持 -r 递归扫目录。
来源:官方 README 与文档入口在约 1 亿文件、200+ 内容类型(二进制与文本)上训练评测,测试集平均约 99% precision/recall,尤其在文本内容类型上超越现有方法。
来源:官方 README 与文档入口采用每内容类型的阈值系统决定是否『信任』模型预测,否则返回 Generic text document / Unknown binary data 等通用标签;可用 high-confidence / medium-confidence / best-guess 不同预测模式控制对错误的容忍度。
来源:官方 README 与文档入口CLI 用 Rust 写,提供 Python API,以及 Rust、JavaScript/TypeScript(实验性 npm,驱动浏览器内本地运行的 web demo)和 GoLang(WIP)绑定,可嵌入各类工具链。
来源:官方 README 与文档入口在 Google 内部把 Gmail/Drive/Safe Browsing 文件路由到正确的安全与内容策略扫描器(每周上千亿样本),并已集成进 VirusTotal 与 abuse.ch,是经过大规模实战验证的安全基础组件。
来源:官方 README 与文档入口多语言 monorepo,围绕一个共享的小型深度学习模型构建:assets/models 下是训练好的标准模型(standard_v3_3 等,含 200+ 内容类型定义)。各语言实现把同一模型跑起来——rust/(CLI 主体,性能最佳)、python/(Python API + 包)、js/(TypeScript 实现 magika.ts/magika-node.ts/magika-cli.ts,experimental npm,并驱动浏览器内本地推理的 web demo)、go/(用 onnx 跑模型,WIP)。模型推理只取文件内容的有限子集做特征、近常数时间,配合每类型阈值与置信度模式输出标签或通用回退。tests_data/ 是测试样本,website/website-ng/ 是站点与 demo。整体是『一个共享小模型 + 多语言客户端/绑定 + 阈值/置信度后处理』的设计,强调小、快、可嵌入、可在客户端/浏览器本地运行(隐私友好)。
来源:官方 README 与文档入口自研小型 DL 模型(几 MB)ONNX Runtime(go/rust 推理)PyPI magika / npm magika200+ 内容类型模型(standard_v3_x)适合:①安全/取证/反滥用场景,需要可靠判断上传文件真实类型(不被扩展名/伪装欺骗)再路由到对应扫描器;②数据管线、内容平台、防病毒/沙箱前置的文件分类;③需要在客户端/浏览器本地、低延迟、单 CPU 跑文件类型识别且注重隐私的场景;④想把准确的 file-type 检测嵌进 Rust/Python/JS/Go 工具链的人。不适合:只需粗略按扩展名判断的轻量场景(无需上模型);以及对极少见/自定义私有格式的识别(不在 200+ 类型内可能回退为通用标签)。
来源:官方 README 与文档入口按语言分别发布:CLI v1.1.0(2026-04-24,Rust)、python-v1.0.2(2026-02-27)等,模型为 standard_v3_3;仓库自 2023-08 持续维护(最近 push 2026-05-20),是成熟且仍活跃迭代的项目。
来源:官方 ReleasesMagika 是『用小 AI 模型把一件老工具做对』的范例:传统 file/libmagic 在文本和伪装文件上常翻车,而它用几 MB 的模型在单 CPU 毫秒级做到 200+ 类型约 99% 准确,还能在浏览器本地跑、隐私友好,背后有 Google 的千亿级生产验证和 ICSE 论文,1.7 万星实至名归。它的边界也清楚:只判断『是什么类型』、不判恶意性,识别范围限于训练覆盖的类型、罕见格式会回退通用标签,且仍是概率判断。对做安全、取证、内容平台或数据管线、需要可靠 file-type 检测的人,它基本是当前最好的开源选择,直接嵌进 Rust/Python/JS/Go 工具链即可。
来源:官方 README 与文档入口