一款轻量的命令行 JSON 处理工具,用可移植 C 编写,无运行时依赖,可对 JSON 数据进行切片、过滤、映射和转换。
- Star
- 10,627
- Fork
- 257
- 未关闭 Issue
- 59
- 最近提交
- 前天
这是什么?
fq 是一个用于处理二进制文件的命令行工具。它沿用 jq 的表达式语言,因此熟悉 jq 的用户可以直接把查询用在二进制数据上,得到解码后的字段而不是原始字节。
工具内置了大量格式解码器,覆盖 MP4、PNG、ELF、PCAP、TLS、Protobuf、ZIP 等常见媒体、网络和文件格式。它提供结构化的十六进制视图,支持嵌套格式解码,并能在比特级别对二进制数据进行切片和拼接。另外还带有支持自动补全的交互式 REPL。
fq 使用 Go 编写,可在 macOS、Linux 和 Windows 上运行,并可通过 Homebrew、scoop、pacman、Nix 等包管理器安装。
核心功能
- 01使用兼容 jq 的表达式语言查询二进制文件。
- 02内置多种格式解码器,涵盖媒体、网络和压缩归档文件。
- 03结构化十六进制视图可同时显示解码字段和原始字节。
- 04支持嵌套格式解码,以及比特级别的切片和拼接。
- 05提供带自动补全的交互式 REPL。
适用场景
- 调试时查看媒体文件或容器的内部结构。
- 在命令行中分析抓包文件或协议消息。
- 在 shell 脚本中从二进制格式提取特定字段。
- 通过浏览解码后的结构树来学习某种文件格式的布局。
快速上手
- 1
在 macOS 上通过 Homebrew 安装
brew install wader/tap/fq - 2
在 Windows 上通过 Scoop 安装
scoop install fq - 3
或使用 Go 安装(需要 Go 1.22 或更高版本)
go install github.com/wader/fq@latest - 4
对文件运行
fq . file
使用前须知
- README 称项目采用 MIT 许可,但元数据中的许可证为 NOASSERTION,复用前请核实许可证。
收录于专题
标签
常见问题
- fq 是什么?
- 类似 jq 的命令行工具与查询语言,用于查看和查询二进制文件格式,内置多种格式解码器。 fq 是一个用于处理二进制文件的命令行工具。它沿用 jq 的表达式语言,因此熟悉 jq 的用户可以直接把查询用在二进制数据上,得到解码后的字段而不是原始字节。
- fq 可以免费使用吗?用的什么许可证?
- fq 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
- fq 还在维护吗?
- 活跃维护中。fq 最近一次提交是在 2026年11月5日。
- fq 适合用来做什么?
- 调试时查看媒体文件或容器的内部结构。 在命令行中分析抓包文件或协议消息。 在 shell 脚本中从二进制格式提取特定字段。 通过浏览解码后的结构树来学习某种文件格式的布局。
- fq 怎么安装和运行?
- 在 macOS 上通过 Homebrew 安装: brew install wader/tap/fq 在 Windows 上通过 Scoop 安装: scoop install fq 或使用 Go 安装(需要 Go 1.22 或更高版本): go install github.com/wader/fq@latest 对文件运行: fq . file
- 在哪里获取 fq?
- 源代码和安装说明在 GitHub 上:https://github.com/wader/fq
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
3.6万+64 本周3067COther维护活跃更新于 5天前
一款分析编译后 Go 二进制文件体积构成的工具,可按包、段和符号拆解,支持文本、JSON、HTML、SVG、网页和终端界面输出。
2195+2 本周45GoAGPL-3.0维护活跃更新于 3天前
一个命令行工具,可为 Linux、macOS 和 Windows 构建无外部依赖、可直接运行的独立 PHP 可执行文件。
1966+3 本周433PHPMIT维护活跃更新于 前天
用于构建命令行工具的 Go 声明式库,支持子命令、参数与 shell 补全。
2.4万+6 本周1858GoMIT维护活跃更新于 4天前