GitHub Hot Board

GitHub Hot Board · 저장소 아카이브

wader/fq

fq - jq for binary formats. Tool, language and decoders for working with binary formats. (소개는 저장소 자체 문서에서 왔습니다.)

데이터 기준 October 26wader

최고 순위

#421

종합 · Go 언어별

11K

누적 스타

256

포크 수

0

최근 30일 기록 일수

프로젝트 상태라이선스: NOASSERTION최근 push: October 22열린 이슈(PR 포함): 59

2026-10-25부터 수집. 미확인 = 아직 미수집

README에 뱃지를 붙여보세요 · wader/fq[![README에 뱃지를 붙여보세요](https://git.vaiox.xyz/api/badge/wader/fq.svg)](https://git.vaiox.xyz/ko/repo/wader/fq)
<a href="https://git.vaiox.xyz/ko/repo/wader/fq"><img src="https://git.vaiox.xyz/api/badge/wader/fq.svg" alt="README에 뱃지를 붙여보세요" height="20"></a>

프로젝트 문서

fq

Tool, language and decoders for working with binary formats.

fq demo

Basic usage is fq . file, fq d file or fq 'some query' file ....

For details see the manual, also available as man fq and as AsciiDoc.

Background

fq is a tool, language, and decoders for working with binary formats and data. In most cases it behaves and feels similar to jq and it also uses the same expression language. To get the most out of fq it's recommended to learn more about jq.

It features a structural hex viewer, nested format decoding, slicing and concatenating binary data, bit-level decoding and an interactive REPL with auto-completion.

Goals

  • Make binaries more accessible, queryable and sliceable.
  • Nested formats and bit-oriented decoding.
  • Quick and comfortable CLI tool.
  • Bits and bytes transformations.

Hopes

  • Make it useful enough that people want to help improve it.
  • Inspire people to create similar tools.

Supported formats

aac_frame, adts, adts_frame, aiff, amf0, apev2, apple_bookmark, ar, asn1_ber, av1_ccr, av1_frame, av1_obu, avc_annexb, avc_au, avc_dcr, avc_nalu, avc_pps, avc_sei, avc_sps, avi, avro_ocf, bencode, bitcoin_blkdat, bitcoin_block, bitcoin_script, bitcoin_transaction, bits, bplist, bsd_loopback_frame, bson, bytes, bzip2, caff, cbor, csv, dns, dns_tcp, elf, ether8023_frame, exif, fairplay_spc, fit, flac, flac_frame, flac_metadatablock, flac_metadatablocks, flac_picture, flac_streaminfo, gif, gzip, heif, hevc_annexb, hevc_au, hevc_dcr, hevc_nalu, hevc_pps, hevc_sps, hevc_vps, html, icc_profile, icmp, icmpv6, id3v1, id3v11, id3v2, ipv4_packet, ipv6_packet, jp2c, jpeg, json, jsonl, leveldb_descriptor, leveldb_log, leveldb_table, luajit, macho, macho_fat, markdown, matroska, midi, moc3, mosaic, mp3, mp3_frame, mp3_frame_vbri, mp3_frame_xing, mp4, mpeg_asc, mpeg_es, mpeg_pes, mpeg_pes_packet, mpeg_spu, mpeg_ts, msgpack, negentropy, nes, ogg, ogg_page, opentimestamps, opus_packet, pcap, pcapng, pg_btree, pg_control, pg_heap, png, prores_frame, protobuf, protobuf_widevine, pssh_playready, rtmp, safetensors, sll2_packet, sll_packet, stl, tap, tar, tcp_segment, tiff, tls, toml, tzif, tzx, udp_datagram, vorbis_comment, vorbis_packet, vp8_frame, vp9_cfm, vp9_frame, vpx_ccr, wasm, wav, webp, xml, yaml, zip

It can also work with some common text formats like URLs, hex, base64, PEM etc and for some serialization formats like XML, YAML, etc. it can transform both from and to jq values.

For details see the manual.

Presentations and media

Install

Use one of the methods listed below or download a pre-built release for macOS, Linux or Windows. Unarchive it and move the executable to PATH etc.

On macOS if you don't install using one of the method below then you might have to manually allow the binary to run. This can be done by trying to run the binary, ignore the warning and then go into security preference and allow it. Same can be done with these commands:

xattr -d com.apple.quarantine fq
# for macOS version before Sequoia you might need this also
spctl --add fq

Homebrew (macOS)

brew install wader/tap/fq

MacPorts

On macOS, fq can also be installed via MacPorts. More details here.

sudo port install fq

Windows

fq can be installed via scoop.

scoop install fq

Arch Linux

fq can be installed from the extra repository using pacman:

pacman -S fq

You can also build and install the development (VCS) package using an AUR helper:

paru -S fq-git

Gentoo

fq can be installed from the Gentoo package repository using emerge:

emerge dev-util/fq

Guix

guix shell fq -- fq --help # in develompen shell
guix install fq            # into current profile

Nix

nix-shell -p fq

FreeBSD

Use the fq port.

Alpine

Currently in edge testing but should work fine in stable also.

apk add -X http://dl-cdn.alpinelinux.org/alpine/edge/testing fq

Build from source

Make sure you have go 1.22 or later installed.

To install directly from git repository (no git clone needed):

# build and install latest release
go install github.com/wader/fq@latest

# build and install latest master
go install github.com/wader/fq@master

# copy binary to $PATH if needed
cp "$(go env GOPATH)/bin/fq" /usr/local/bin

To build, run and test from source:

# build and run
go run .
# build and run with arguments
go run . -d mp3 . file.mp3
# just build
go build -o fq .
# run all tests and build binary
make test fq

Development and adding a new decoder

See dev.md

Thanks and related projects

This project would not have been possible without itchyny's jq implementation gojq. I also want to thank HexFiend for inspiration and ideas and stedolan for inventing the jq language.

Similar or related works

Tools

  • HexFiend - Hex editor for macOS with format template support.
  • ImHex - A Hex Editor for Reverse Engineers.
  • binspector - Binary format analysis tool with query language and REPL.
  • kaitai - Declarative binary format parsing.
  • Wireshark - Decodes network traffic (tip: tshark -T json).
  • MediaInfo - Analyze media files (tip mediainfo --Output=JSON and mediainfo --Details=1).
  • GNU poke - The extensible editor for structured binary data.
  • ffmpeg/ffprobe - Powerful media libraries and tools.
  • hexdump - Hex viewer tool.
  • hex - Interactive hex viewer with format support via lua.
  • hachoir - General python library for working binary data.
  • scapy - Decode/Encode formats, focus on network protocols.

Projects and Standards

TODO and ideas

See TODO.md

License

fq is distributed under the terms of the MIT License.

See the LICENSE file for license details.

Licenses of direct dependencies:

현재 순위

  • 421

    종합 랭킹 · 역대 최강 · Go

    11K 스타 · 256 fork · 총 스타 수

    종합 · Go →

최근 30일 추이

최근 30일간 기록이 없습니다.

비슷한 프로젝트 · 공유 토픽

← 랭킹으로