jzelinskie/faq
{ "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"}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
Installation
Section titled “Installation”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
Development
Section titled “Development”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.
git clone git@github.com:jzelinskie/faq.gitcd faqmake allWith Docker and buildx bake:
# 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 imagedocker buildx bake image-all
# create the artifact matching your current platform in ./distdocker buildx bake artifact
# create artifacts for many platforms in ./distdocker buildx bake artifact-all
# run testsdocker buildx bake test
# lintdocker 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
License
Section titled “License”faq is made available under the Apache 2.0 license. See the [LICENSE]!(LICENSE) file for details.