Paradigms | Purely functional programming, JSON-oriented processing, tacit programming |
---|---|
Designed by | Stephen Dolan |
First appeared | August 21, 2012 |
Stable release | 1.7.1[1]
/ December 13, 2023 |
Implementation language | jq: C gojq: Go jaq: Rust jqjq: jq |
Platform | Cross-platform[note 1] |
OS | Cross-platform[note 2] |
License | MIT[note 3] |
Website | jqlang |
jq is a very high-level lexically scoped functional programming language in which every JSON value is a constant. jq supports backtracking and managing indefinitely long streams of JSON data. It is related to the Icon and Haskell programming languages. The language supports a namespace-based module system and has some support for closures. In particular, functions and functional expressions can be used as parameters of other functions.
The original implementation of jq was in Haskell[3] before being immediately ported to C.
Cite error: There are <ref group=note>
tags on this page, but the references will not show without a {{reflist|group=note}}
template (see the help page).