When you need your users to filter data, but you don't want to give them SQL.

Simple. Safe. Human-readable. A filter query language with parsers in Go, Python, and JavaScript, SQL generators for ClickHouse, PostgreSQL, and StarRocks, and a Vue 3 editor with autocomplete.

Components

GoGo+PythonPython+JavaScriptJavaScript

Query parsers with identical AST output and operator semantics across all three runtimes, tested against 1743 shared E2E cases.

SQL generators

ClickHouse , PostgreSQL , and StarRocks . Values are always query parameters — never interpolated into the SQL string.

Vue components

Query and column editor components with schema-aware suggestions and autocompletion. Tokenizer-based syntax highlighting.

Try in playground →
In-memory matcher

Evaluates FlyQL queries against Go structs, Python dicts, or JS objects without a database. Same query, same semantics as the SQL path.

Or match in-memory
{"status":500,"method":"POST","host":"API.PROD.COM","path":"/api/users","request":{"duration_ms":1200}}
{"status":200,"method":"GET","host":"api.prod.com","path":"/health","request":{"duration_ms":3}}
{"status":200,"method":"GET","host":"cdn.example.com","path":"/assets/app.js","request":{"duration_ms":2500}}
{"status":404,"method":"DELETE","host":"staging.api.com","path":"/api/legacy","request":{"duration_ms":42}}
Same query, identical semantics in Go, Python, and JavaScript.

Installation

go get github.com/iamtelescope/flyql/golang

Origin

Built for Telescope, an open-source log viewer for ClickHouse, Kubernetes, Docker, and more. Extracted as a standalone library.

Full background →