Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>QuickQLNew to Visual Studio Code? Get it now.
QuickQL

QuickQL

Niklas Nordkamp

|
3 installs
| (0) | Free
Query JSON files from .ql documents with a Rust query engine and language server.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

QuickQL

A lightweight pipeline query language for transforming JSON, CSV, and HTTP data sources. QuickQL queries are plain text files (.ql) that describe a sequence of data transformation steps executed top to bottom.

Quick Example

SOURCE OPEN('orders.json')
FILTER EQ(status, 'shipped')
MAP customer_id, total, shipped_date = GETDATE(shipped_at)
GROUP_BY customer_id MAP total = SUM(total), last_ship = MAXDATE(shipped_date)
SORT_BY last_ship DESC

Statements

Each line in a .ql file is one pipeline step. Steps are separated by newlines; comments start with --.

Statement Description
SOURCE Load data from a file, URL, or inline literal
MAP Select, rename, or compute columns
FILTER Keep only rows matching a condition
MAP_MANY Flatten an array field into individual rows
GROUP_BY Group rows by keys and aggregate
SORT_BY Sort rows by one or more columns

Data Sources

QuickQL can read:

  • JSON files — array of objects or a single object/array
  • CSV files — automatically detected by .csv extension
  • HTTP endpoints — GET, POST, or PUT with optional headers, body, and pagination
  • Other .ql files — compose queries by referencing them as sources
-- JSON file
SOURCE OPEN('data/users.json')

-- CSV file
SOURCE OPEN('reports/sales.csv')

-- HTTP API
SOURCE GET('https://api.example.com/users')

-- Another query
SOURCE OPEN('other_query.ql')

-- Multiple sources merged
SOURCE OPEN('users.json'), OPEN('admins.json')

Transforming Data

Select and rename columns

SOURCE OPEN('users.json')
MAP id, name, email
SOURCE OPEN('users.json')
MAP id, full_name = name, contact = email

Compute new fields

SOURCE OPEN('orders.json')
MAP *, total_with_tax = SUM(total, tax)

Filter rows

SOURCE OPEN('users.json')
FILTER active
SOURCE OPEN('orders.json')
FILTER AND(EQ(status, 'pending'), total)

Flatten nested arrays

SOURCE OPEN('invoices.json')  -- each invoice has a "lines" array
MAP_MANY lines
MAP product_id, quantity, price

Group and aggregate

SOURCE OPEN('sales.json')
GROUP_BY region MAP revenue = SUM(amount), orders = COUNT(amount)

Sort

SOURCE OPEN('products.json')
SORT_BY price DESC, name ASC

Functions

Function Description
SUM(field) Sum of numeric values (works on grouped arrays)
COUNT(field) Count of values
ARRAY(a, b, ...) Collect values into an array
CONCAT(a, b, ...) Concatenate strings
EQ(a, b) true if a equals b
AND(a, b, ...) true if all arguments are truthy
OR(a, b, ...) true if any argument is truthy
GETDATE(field) Extract the date part from an ISO datetime string
MINDATE(field) Earliest date in a set
MAXDATE(field) Latest date in a set
BASE64(value) Base64-encode a value
OPEN(src) / GET(src) Load a file or URL (HTTP GET)
POST(src) HTTP POST
PUT(src) HTTP PUT

See docs/functions.md for full details and examples.

Values and Expressions

  • Field reference: name, address.city (dot-notation for nested fields)
  • String: 'hello' or "hello"
  • Number: 42, -3.14
  • Boolean: true, false
  • Inline object: {key: value, other: 'text'}
  • Inline array: [1, 2, 3]
  • Function call: SUM(amount)

See docs/values-and-expressions.md for full details.

Development

Install locally

code --install-extension quickql-0.0.3.vsix

Build package

vsce package

Detailed Documentation

  • SOURCE — loading data
  • MAP — transforming and selecting columns
  • FILTER — filtering rows
  • MAP_MANY — flattening nested arrays
  • GROUP_BY — grouping and aggregation
  • SORT_BY — sorting results
  • Functions — built-in functions reference
  • Values & Expressions — literals, references, operators
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft