Skip to content
/ faq Public

Format Agnostic jQ -- process various formats with libjq

License

Notifications You must be signed in to change notification settings

jzelinskie/faq

Repository files navigation

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.

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.

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.