awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
jqlang avatar

jqlang/jq

0
View on GitHub↗
34,901 stars·1,802 forks·C·14 viewsjqlang.org↗

Jq

This project is a command-line processor designed for the parsing, filtering, and transformation of structured data streams. It functions as a declarative programming environment that treats data as immutable streams, allowing users to perform complex structural modifications through the composition of small, reusable functions. By utilizing a recursive tree traversal engine, the system enables the navigation, inspection, and modification of deeply nested hierarchical data structures.

The engine distinguishes itself through a stream-oriented architecture that processes input records one by one, maintaining a low memory footprint even when handling massive documents. It employs a custom stack-based virtual machine to execute compiled filter expressions efficiently, while its lazy evaluation semantics ensure that expressions are only computed when required by the pipeline. This combination of functional pipeline composition and pattern-matching capabilities allows for sophisticated data manipulation directly from the terminal.

Beyond its core processing model, the system provides a comprehensive suite of tools for data navigation, arithmetic and logical operations, and collection management. It supports advanced logic control, including variable assignment and iterative structures, alongside robust text manipulation through regular expression processing. These features facilitate a wide range of tasks, from automated log analysis and configuration file manipulation to complex data pipeline transformations.

Features

  • Data Transformation Languages - Provides a declarative environment for immutable data transformation through functional composition.
  • Command-Line Data Processors - Provides a lightweight tool for parsing, filtering, and transforming structured data streams directly from the terminal.
  • Stream Filters - Applies granular filters to individual values within a continuous JSON stream.
  • Stream Processing Engines - Processes JSON data as continuous streams to maintain a low memory footprint.
  • Data Transformation Functions - Performs arithmetic, logical, and structural transformations on JSON values.
  • Large Data Streamers - Parses massive JSON documents by streaming path-value pairs to minimize memory usage.
  • Tree Traversal Engines - Implements recursive path-based selection and transformation for deeply nested hierarchical data.
  • Functional Pipelines - Composes data processing stages as a series of discrete, functional operations.
  • Command Line Utilities - Parses and manipulates JSON data in the terminal.
  • Language Implementations - The original command-line JSON processor.
  • Data Processing Pipelines - Consumes input records sequentially to perform real-time filtering, mapping, and reduction.
  • Object Property Accessors - Retrieves object properties and array elements using safe dot notation and optional chaining.
  • Runtime Environments - Executes compiled filter expressions using a custom stack-based bytecode interpreter.
  • Pattern Matching Engines - Matches and transforms data nodes based on structural patterns and predicates.
  • Conditional Data Filters - Processes input data by applying a conditional predicate to pass through only those items that satisfy specified criteria.
  • Path Extractors - Extracts specific elements or values from JSON structures using path-based filters.
  • Collection Iterators - Processes every element of an array or object by producing each item as an individual result for subsequent operations.
  • Data Mappers - Transforms elements within an array or object by applying a function to each value and returning the resulting modified collection.
  • Data Path Mappers - Generates comprehensive lists of paths to elements within nested JSON structures.
  • Data Pipeline Transformers - Cleans and reformats raw data outputs from APIs or databases to match required schemas.
  • Data Reducers - Aggregates multiple values into a single result by iteratively applying an update expression to an initial value across a collection.
  • JSON Construction Utilities - Constructs complex JSON arrays and objects using specialized literal syntax.
  • Path Filters - Identifies paths to elements based on node types and specific value criteria.
  • Regular Expression Engines - Executes pattern matching and scanning tasks to extract or modify text content.
  • Concurrency Models - Defers expression evaluation to efficiently handle large or infinite data structures.

Star history

Star history chart for jqlang/jqStar history chart for jqlang/jq

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does jqlang/jq do?

This project is a command-line processor designed for the parsing, filtering, and transformation of structured data streams. It functions as a declarative programming environment that treats data as immutable streams, allowing users to perform complex structural modifications through the composition of small, reusable functions. By utilizing a recursive tree traversal engine, the system enables the navigation, inspection, and modification of deeply nested hierarchical data…

What are the main features of jqlang/jq?

The main features of jqlang/jq are: Data Transformation Languages, Command-Line Data Processors, Stream Filters, Stream Processing Engines, Data Transformation Functions, Large Data Streamers, Tree Traversal Engines, Functional Pipelines.

What are some open-source alternatives to jqlang/jq?

Open-source alternatives to jqlang/jq include: hazelcast/hazelcast — Hazelcast is a distributed data platform that combines an in-memory data grid with a stream processing engine to… mikefarah/yq — This tool is a command-line processor designed for querying, updating, and transforming structured data files. It… nushell/nushell — Nushell is a cross-platform shell and programming language designed to treat all input and output as structured data… apify/crawlee — Crawlee is a web scraping framework designed for building scalable, reliable, and distributed data extraction… tokio-rs/tokio — Tokio is an asynchronous runtime for the Rust programming language, designed to manage and execute concurrent tasks… vsouza/awesome-ios — This project is a community-driven directory of software resources, libraries, and tools designed to support iOS…

Open-source alternatives to Jq

Similar open-source projects, ranked by how many features they share with Jq.
  • hazelcast/hazelcasthazelcast avatar

    hazelcast/hazelcast

    6,570View on GitHub↗

    Hazelcast is a distributed data platform that combines an in-memory data grid with a stream processing engine to support real-time analytics and event-driven applications. It functions as a partitioned, distributed key-value store that replicates data across cluster nodes to provide low-latency access and high availability. The platform also serves as a distributed SQL query engine, allowing users to execute standard SQL statements against both in-memory datasets and external data sources. What distinguishes Hazelcast is its use of a distributed consensus subsystem to maintain strongly consis

    Javabig-datacachingdata-in-motion
    View on GitHub↗6,570
  • mikefarah/yqmikefarah avatar

    mikefarah/yq

    14,913View on GitHub↗

    This tool is a command-line processor designed for querying, updating, and transforming structured data files. It functions as a versatile engine for manipulating YAML, JSON, TOML, and XML documents, allowing users to perform complex operations directly from the terminal. By utilizing a path-based expression language, it enables precise navigation and modification of data structures within configuration files and infrastructure-as-code workflows. What distinguishes this tool is its ability to perform in-place document mutations while preserving original formatting, comments, and metadata. It

    Gobashclicsv
    View on GitHub↗14,913
  • nushell/nushellnushell avatar

    nushell/nushell

    39,743View on GitHub↗

    Nushell is a cross-platform shell and programming language designed to treat all input and output as structured data rather than raw text streams. By enforcing data types and command signatures, it provides a consistent environment for building robust, pipeline-oriented workflows. The shell allows users to chain commands that pass structured objects between stages, enabling complex data processing and automation tasks that remain predictable across different operating systems. What distinguishes the project is its focus on interactive data exploration and modular extensibility. Users can quer

    Rustnushellrustshell
    View on GitHub↗39,743
  • apify/crawleeapify avatar

    apify/crawlee

    24,002View on GitHub↗

    Crawlee is a web scraping framework designed for building scalable, reliable, and distributed data extraction pipelines. It provides a unified interface for managing headless browser automation and lightweight HTTP requests, allowing developers to handle complex web navigation, dynamic content rendering, and large-scale data collection within a single, modular architecture. The project distinguishes itself through its resource-aware concurrency controller, which dynamically scales task execution based on real-time CPU and memory usage to prevent host machine exhaustion. It also features a rob

    TypeScriptapifyautomationcrawler
    View on GitHub↗24,002
  • See all 30 alternatives to Jq→