A small implementation of JQ.
jq is a fantastic tool for wrangling JSON, but it's written in C and so cannot be used in a browser. This project implements a subset of the JQ filter language, and is intended for simple filtering jobs in JavaScript where the filter is supplied e.g. by a user.
It uses a parsed expression grammar (via Peggy) to transform JQ expressions into a series of "op codes", with each one representing a JQ filter operation. Each op code is executed with a context, which is initialised with the input object. As each op code executes, the context is updated.