curl vs jq
curl
curl.sejq
jqlang.orgSide by side
| Figure | curl | jq |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | — | Yes |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| iOS | Yes | — |
| Android | Yes | — |
| Self-hosted | — | Yes |
| Plans published | 1 | 1 |
| Spec score · Command Line Tools | 8.4 (#7) | 8.5 (#6) |
| Distribution | The curl project mostly provides source packages, while other packages are provided by external people and organizations. | The download page lists installation through Linux distribution repositories, Homebrew, MacPorts, Fink, winget, Scoop, and Chocolatey. |
| Platforms | The downloads page lists packages for Linux, macOS, iOS, and 32-bit and 64-bit Windows, among many other systems. | The download page links standalone executables for Linux, macOS, and Windows, and describes building jq for nearly any platform. |
| Purpose | curl is a command line tool and library for transferring data with URLs. | jq is a lightweight, flexible command-line JSON processor for slicing, filtering, mapping, and transforming structured data. |
| Security reporting | The project asks people who find or suspect a security problem in curl or libcurl to file a detailed report and links to a table of vulnerable versions. | The jqlang/jq repository has GitHub private vulnerability disclosure enabled. |
Plans
In their own words
jq
jq is a free command-line processor for selecting and transforming JSON data. A jq filter takes an input and produces output; filters can be combined to access nested attributes, construct objects, gather results into arrays, or make other transformations. It reads whitespace-separated JSON values and writes serialized results separated by whitespace. Each expression runs on each input value and may produce zero or more outputs. For very large inputs, the --stream option parses incrementally. Output options include compact, raw, ASCII, sorted-key, and colored forms. Written in portable C, jq has no runtime dependencies, and a standalone binary can be copied to another machine of the same type. Standalone executables are available for Linux, macOS, and Windows, with packages listed for Linux distributions and package managers including Homebrew, MacPorts, winget, Scoop, and Chocolatey. A Docker image is also available. Release binaries have SHA-256 checksums, and signed release artifacts use jq release keys. The code is licensed under MIT; the documentation uses CC-BY-3.0.