v3.1 · COLLECT_OBJECT aggregate · expression-first API

SQL for
your files.

Query XML, CSV, JSON, XLSX, YAML and more with familiar SQL syntax.No database. No ETL pipeline. Just your files and a query.

$composer require 1biot/fiquela
Read the docs
9+
File Formats
50+
SQL Functions
1302
Unit Tests
90%+
Code Coverage
MIT
License

// HOW IT WORKS

Two ways to query.

Write SQL strings you already know, or chain fluent PHP methods — both compile to the same engine.

// FQL string syntax
use FQL\Query\Provider;

$results = Provider::fql(<<<FQL
    SELECT name, brand, ROUND(price, 2) AS price
    FROM   xml(feed.xml).SHOP.SHOPITEM
    WHERE  price > 100 AND in_stock = 'yes'
    ORDER BY price DESC
    LIMIT 20
FQL)->execute()->fetchAll();
FQL String
Fluent API
Best for
SQL developers
PHP developers
Dynamic queries
String interpolation
Method chaining
IDE support
Autocomplete + types
Complex joins
Very readable
Method chains

// SUPPORTED FORMATS

One API. Every format.

Switch between formats without changing your query logic.

CSVAny delimiter, any encoding, row-by-row streaming
XMLProduct feeds, sitemaps, configs. Full stream support
JSONStandard + streaming. NDJSON with line-by-line parsing
XLSXExcel files without opening Excel. Query sheets directly
ODSOpenDocument Spreadsheet
YAMLConfig files, data exports. Full query support
NEONNette framework format. First-class support
LOGNginx/Apache access logs via standard FQL
DIRQuery file metadata across entire directory trees
+Parquet, TOML, INI — in roadmap

// CAPABILITIES

Not just SELECT *

Full SQL feature set — built for files.

Stream-first Processing

Process XML, JSON, XLSX and CSV with millions of rows without loading everything into memory. Built for real-world feed sizes.

Cross-format JOINs

Join a CSV product catalog against an XML feed against a JSON category list — all in a single query. Left, right, inner, and full outer joins supported.

Σ

Full Aggregation

GROUP BY, HAVING, SUM, COUNT, AVG, MIN, MAX, GROUP_CONCAT — with optional DISTINCT. Everything you expect from SQL.

ƒ

50+ Built-in Functions

String, math, date, array, hashing and utility functions. ROUND, UPPER, LOWER, DATE_FORMAT, CASE WHEN, COALESCE and more.

EXPLAIN ANALYZE

Profile every query phase: stream, where, group, sort. Rows in/out, wall time and peak memory — without leaving PHP.

Export with INTO

Write results directly to CSV, JSON, NDJSON, XML, XLSX or ODS. Convert between formats with a single SELECT … INTO.

// Rich filtering — LIKE, REGEXP, BETWEEN, IN, IS NULL, IS NUMBER, IS ARRAY …
-- Type checking + pattern matching + nested groups
WHERE price IS NUMBER
  AND tags IS ARRAY
  AND LOWER(email) LIKE "@example.com"
  AND price BETWEEN 100 AND 500
  AND status IN ('active', 'pending')
  AND (stock > 0 OR featured = true)
  AND sku REGEXP "^[A-Z]{2}-\d{4}$"

// THE ECOSYSTEM

Library. CLI. API. Studio.

Use the PHP library directly, run the CLI, deploy the REST API, or open Explorer Studio — all powered by the same engine.

OPEN SOURCE

FiQueLa

The core PHP library. Install via Composer, query any file in minutes. MIT licensed, battle-tested with 1302+ unit tests and PHPStan level 8.

COMMAND LINE

FiQueLa CLI

Run FQL queries directly from your terminal. Supports remote files via URL, benchmarking and query inspection. Perfect for scripts and automation pipelines.

SELF-HOSTED / CLOUD

FiQueLa API

RESTful API with JWT auth, query history, pagination, export and S3 backup. Docker-ready. Host it yourself or use our cloud.

WEB + DESKTOP

Explorer Studio

Visual query builder, SQL editor with autocomplete, schema browser, charts and export. Web app plus Tauri desktop client for macOS, Linux and Windows.

Try it free

Download desktop · latest

Download
Explorer Studio — SQL editor with FQL queries and resultsExplorer Studio — visual query builder with aggregationExplorer Studio — schema browser with column distributionExplorer Studio — charts and data visualization

Start querying in minutes.

Free. Open source. MIT licensed. No database required.

$composer require 1biot/fiquela
View on GitHub