fq is inspired by the jq tool and language and allows you to work with
binary formats in the same way. In addition to using jq expressions it
can also present decoded tree structures, transform, slice and
concatenate binary data. It also supports nested formats and features an
interactive REPL with auto-completion of functions and names.

It was originally designed to query, inspect and debug media codecs and
containers like MP4, FLAC and JPEG but has since been extended to
support a variety of formats like executables, packet captures (with TCP
reassembly) and serialization formats like JSON, YAML, XML, CBOR,
protobuf. In addition it also has functions to work with URLs, convert
to/from hex, number bases, search for patterns etc.
