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.
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
- RPMs are available via a COPR repository.
- There's an AUR PKGBUILD for Arch Linux that can be installed with your favorite AUR tooling.
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 [email protected]:jzelinskie/faq.git
cd faq
make all
With 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 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
License
faq is made available under the Apache 2.0 license. See the LICENSE file for details.