jzelinskie / faq

Format Agnostic jQ -- process various formats with libjq
Apache License 2.0
440 stars 14 forks source link
bencode bson command-line jq json plist toml xml yaml

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:

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.

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.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.