Skip to content
vic

jzelinskie/faq

Format Agnostic jQ -- process various formats with libjq

jzelinskie/faq.json
{
"createdAt": "2018-03-13T06:01:24Z",
"defaultBranch": "main",
"description": "Format Agnostic jQ -- process various formats with libjq",
"fullName": "jzelinskie/faq",
"homepage": "",
"language": "Go",
"name": "faq",
"pushedAt": "2024-10-02T15:27:05Z",
"stargazersCount": 459,
"topics": [
"bencode",
"bson",
"command-line",
"jq",
"json",
"plist",
"toml",
"xml",
"yaml"
],
"updatedAt": "2025-11-14T18:00:11Z",
"url": "https://github.com/jzelinskie/faq"
}

Go Report Card Build Status Godoc Releases LICENSE

faq is a tool intended to be a more flexible [jq], supporting additional formats. The additional formats are converted into JSON and processed with [libjq].

Supported formats:

  • BSON
  • Bencode
  • JSON
  • Property Lists
  • TOML
  • XML
  • YAML

How do you pronounce faq? The same way you would insult a particularly nasty structured document: “F♥︎♥︎♥︎ You”.

For example usage, read [the examples doc].

[releases] !: https://github.com/jzelinskie/faq/releases [jq] !: https://github.com/stedolan/jq [libjq] !: https://github.com/stedolan/jq/wiki/C-API:-libjq [the examples doc] !: /docs/examples.md

The master branch may be in an unstable or even broken state during development. Please use [releases] instead of the master branch in order to get stable binaries.

Behavior such as command-line flags may change causing shell scripts using faq to break after upgrading. jq programs are stable and should be considered a bug if it does not match jq behavior.

  • Statically compiled binaries are available on the [releases] page: just download the binary for your platform, and make it executable.
  • A [Homebrew] formula can be installed with brew install jzelinskie/faq/faq
  • On macOS, you can also install through MacPorts: sudo port install faq (info)
  • RPMs are available via a [COPR repository].
  • There’s an [AUR PKGBUILD] for Arch Linux that can be installed with your favorite [AUR tooling].

[Homebrew] !: https://brew.sh [COPR repository] !: https://copr.fedorainfracloud.org/coprs/ecnahc515/faq [AUR PKGBUILD] !: https://aur.archlinux.org/packages/faq/ [AUR tooling] !: https://wiki.archlinux.org/index.php/AUR_helpers

In order to compile the project, the [latest stable version of Go] and knowledge of a [working Go environment] are required. A version of [jq] greater than 1.6-rc2 that includes the libjq header files must also be installed on the system.

Terminal window
git clone git@github.com:jzelinskie/faq.git
cd faq
make all

With Docker and buildx bake:

Terminal window
# build docker image and output to docker with faq:local tag (default)
docker buildx bake image-local
# create builder for multi-arch build (see below)
docker buildx create --name faq-builder
# build multi-platform image
docker buildx bake image-all
# create the artifact matching your current platform in ./dist
docker buildx bake artifact
# create artifacts for many platforms in ./dist
docker buildx bake artifact-all
# run tests
docker buildx bake test
# lint
docker buildx bake lint

[latest stable version of Go] !: https://golang.org/dl [working Go environment] !: https://golang.org/doc/code.html [jq] !: https://stedolan.github.io/jq

faq is made available under the Apache 2.0 license. See the [LICENSE]!(LICENSE) file for details.