Cross-platform SQL Query Workbench and analytical database client (DuckDB, ClickHouse) with an integrated AST visualizer and Data Lineage engine.
📖 Documentation:
- Multi-tab SQL Editor: Syntax highlighting, Regex find & replace, schema-aware autocomplete, and custom hotkeys.
- SQL Variables & Macros: Parameterize your queries using local variables directly in SQL comments (e.g., {{$limit=100}}).
- Engine Support:
- DuckDB: Direct disk file querying (.duckdb,.parquet,.csv,.json) on Desktop via C++/Rust IPC, or in-memory execution via WebAssembly (VFS).
- ClickHouse: HTTP API integration with authentication, COPY TO / COPY FROMstreaming pipelines, and server-side query cancellation tokens. Native Capacitor HTTP support for CORS bypass on Android. URI connection string parser with double-escaping support (@@/::for special characters in passwords).
- DuckDB: Direct disk file querying (
- DuckDB Init Script (duckDbInitSql): Custom startup SQL execution for PRAGMAs, timezone setup, and auto-loading extensions upon connecting.
- Schema Introspection: Object explorer for tables, views, and column data types with quick-injection context menus.
- Encoding & Minification: Support for opening scripts in Windows-1251 (ANSI) encoding, plus smart SQL compacting to a single line with automatic --to/* */comment conversion.
- Result Inspector (DataStatsViewer): Table pagination, transposition (row ↔ column swap), and Cell Zoom detailed viewing.
- Automated Column Statistics: Offloaded metric calculations (Null %, distinct count, min/max, mean, stddev) run directly on the database side.
- Interactive Filtering: Instant filter application (WHERE IS NULL/IS NOT NULL) directly from data grid column headers.
- Built-in Charts: Histogram, line, bar, and pie chart rendering powered by Recharts.
- Copy Table as Image: One-click copying of query results as a high-resolution PNG image directly to clipboard.
- Excel (.xlsx) Exporter: Auto-column width calculation, header styling, zebra striping, freeze panes, and native formula totals (SUM,AVERAGE,COUNT).
- SQL-Driven Report Directives: Configure Excel formatting directly inside SQL code comments using directives (@preset,@sheet,@totals,@split,@group,@skip,@hide,@protect,@file,@group_cols,@group_hide, and Markdown#/##titles).
- Direct Desktop Saving: Silent export directly to disk via @excel_save: <path>in Desktop mode without save dialogs.
- Archive Exports: Batch export packaging using JSZip.
- Interactive AST Graphs: Parses SQL into abstract syntax trees with customizable layout orientation (Left-to-Right / Top-to-Bottom).
- Data Lineage Tracing: Dynamic relationship highlighting between source tables, CTEs, columns, and aliases across complex queries.
- Diagram & Schema Exports: Export node graphs to PNG, SVG, JPEG, JSON, Mermaid, Draw.io, and raw XML Schema formats.
- Two-way Mermaid Support: In addition to export, paste raw Mermaid diagrams (graph TD; ...) into the editor to visualize them directly as interactive node graphs.
- Snippets & Quick Actions: Manage reusable SQL snippets with natural string sorting and clipboard copying. ZIP exports group snippets into virtual folders. Multi-statement pipeline execution via -- @jobdirective.
- Encrypted Vault (AES-256 GCM): Client-side connection secret encryption using Web Crypto API with pin-code protection and auto-lock timeouts. Supports dynamic macro substitution ({{SECRET_NAME}}) directly inside queries.
- WASM VFS File Manager: Visual GUI modal for DuckDB WebAssembly to drag-and-drop, inspect, delete, and upload .parquet,.csv,.json, and.duckdbfiles.
- Workspace Synchronization: Automatic background import/export of workspace sessions and tabs via a shared directory or cloud storage path (Dropbox, local NAS) in Desktop mode.
- Version History & Schema Cache: Automatic query snapshot tracking and IndexedDB schema caching with automated stale record cleanup.
- Localization & UI Zoom: Built-in interface language toggling (RU/EN) and adjustable UI scaling (70%–150%).
- Frontend: React 19, TypeScript 5.8, Vite 6, Tailwind CSS v4, Lucide React, Motion, Recharts.
- AST & Graph Engine: @xyflow/react(React Flow),dagre,node-sql-parser.
- Desktop Native Layer (Tauri / Rust): Direct C++/Rust IPC for DuckDB and async HTTP client (tokio/reqwest) for ClickHouse.
- Storage & Encryption: Web Crypto API (AES-256 GCM), IndexedDB, JSZip.
If a security popup appears on launch, run in terminal:
xattr -cr /Applications/"QueryAST Lens.app"On some Linux distributions with Wayland, bundled libwayland-*.so libraries inside the AppImage might conflict with host graphics drivers. If the application crashes on launch, extract the AppImage, remove bundled Wayland libraries so it uses system ones, and run:
# 1. Extract the AppImage
./QueryAST-Lens.AppImage --appimage-extract
# 2. Remove bundled libwayland libraries
rm -f squashfs-root/usr/lib/libwayland-*.so*
# 3. Launch from extracted folder
./squashfs-root/AppRunЛокальный кроссплатформенный SQL Workbench и клиент аналитических баз данных (DuckDB, ClickHouse) с встроенным модулем визуализации AST (Abstract Syntax Tree) и Data Lineage.
Приложение доступно в виде десктоп-клиента (Tauri / Rust), мобильного приложения (Android / Capacitor - WASM).
📖 Документация:
- Руководство пользователя
- Руководство по разработке и сборке
- Справочник расширений DuckDB
- Лицензия (MIT)
- Многовкладочный SQL-редактор: Подсветка синтаксиса, поиск/замена с поддержкой регулярных выражений, автодополнение на основе кэша схем БД и настраиваемые горячие клавиши.
- Локальные SQL-переменные: Поддержка макросов в комментариях. Подстановка значений вида {{$limit=100}}перед выполнением запроса.
- Локальный и сетевой движки:
- DuckDB: Прямое чтение дисковых файлов (.duckdb,.parquet,.csv,.json) в десктоп-версии через C++/Rust IPC без ограничений памяти WASM или работа в браузере через WebAssembly (VFS).
- ClickHouse: Подключение по HTTP API с поддержкой авторизации, потоковых операций COPY TO / COPY FROMи сервер-отмены долгих операций. Нативная поддержка Capacitor HTTP для обхода CORS на мобильных устройствах. Парсер URI-строк подключения с двойным экранированием спецсимволов (@@/::в паролях).
- DuckDB: Прямое чтение дисковых файлов (
- Скрипт инициализации DuckDB (duckDbInitSql): Возможность задания стартовых PRAGMA-параметров, часовых поясов и подключения расширений при старте сессии.
- Управление схемой БД (Introspection): Браузер таблиц, представлений и колонок с типами данных. Включает контекстное меню для быстрой вставки имен объектов в редактор.
- Кодировки и сжатие: Открытие скриптов в кодировке Windows-1251 (ANSI), а также безопасное сжатие SQL в одну строку с автоматической конвертацией однострочных комментариев --в блочные/* */.
- Инспекция результатов (DataStatsViewer): Просмотр таблиц с поддержкой пагинации, транспонирования (строки ↔ колонки) и режима детального просмотра ячеек (Cell Zoom).
- Автоматический расчёт статистики: Вычисление метрик колонок (Null %, уникальные значения, min/max, среднее, стандартное отклонение) с переносом вычислений на сторону базы данных.
- Быстрые интерактивные фильтры: Применение условных фильтров (WHERE IS NULL/IS NOT NULL) прямо из заголовков таблицы результатов.
- Визуализация результатов: Построение гистограмм, линейных, столбчатых и круговых диаграмм на основе результатов запроса.
- Копирование таблицы как изображения: Копирование данных в буфер обмена в виде готового PNG-изображения высокого разрешения (Retina 2x).
- Экспорт в Excel (.xlsx): Поддержка автоматического подбора ширины колонок, закрепления областей, стилизации заголовков и нативных формул итогов (SUM,AVERAGE,COUNT).
- Управление отчётами через SQL-директивы: Конфигурация выгрузки прямо в SQL-комментариях с помощью спец-тегов (@preset,@sheet,@totals,@split,@group,@skip,@hide,@protect,@file,@group_cols,@group_hideи Markdown-заголовков#/##).
- Прямое сохранение на диск: Экспорт отчёта напрямую по заданному пути (@excel_save: <путь>) в Desktop-версии в обход диалоговых окон.
- Пакетная архивация: Поддержка группового экспорта и формирования ZIP-архивов с отчетами (jszip).
- Интерактивный граф запроса: Разбор SQL-запросов на узлы AST (node-sql-parser) и построение интерактивных графов (@xyflow/react) с возможностью переключения ориентации (слева-направо / сверху-вниз).
- Отслеживание Data Lineage: Динамическая подсветка связей между исходными таблицами, промежуточными CTE, колонками и алиасами.
- Экспорт графов и схем: Сохранение диаграмм в форматы PNG, SVG, JPEG, JSON, Mermaid, Draw.io и сырую схему XML Schema.
- Двусторонний Mermaid: Помимо экспорта, поддержка визуализации вставленных в редактор Mermaid-диаграмм (graph TD; ...) в виде интерактивного графа узлов.
- Библиотека сниппетов и действий (No-code Action Menu): Сохранение часто используемых запросов с поддержкой естественной алфавитной сортировки. Экспорт в ZIP распределяет сниппеты по папкам ("Избранное", "Jobs"). Поддержка многокомандных пайплайнов выполнения через директиву -- @job.
- Защищённый Vault (AES-256 GCM): Шифрование параметров подключения и секретов в браузере с защитой пин-кодом и автоблокировкой по таймеру. Подстановка секретов в SQL-запросы в формате {{SECRET_NAME}}.
- Файловый менеджер WASM VFS: Графический интерфейс для управления виртуальной файловой системой DuckDB WASM (Drag & Drop загрузка, инспекция и удаление .parquet,.csv,.json,.duckdb).
- Синхронизация рабочего пространства: Фоновый автоматический обмен сессиями, вкладками и настройками через общий файл/папку (Dropbox, сетевой диск) в десктоп-версии (Tauri).
- История версий и кэш: Автоматическое сохранение снимков запросов и кэширование схем в IndexedDB с процедурами автоочистки устаревших записей.
- Мультиязычный интерфейс и зум: Поддержка переключения языков интерфейса (RU/EN) и масштабирование интерфейса (70%–150%).
- Frontend: React 19, TypeScript 5.8, Vite 6, Tailwind CSS v4, Lucide React, Motion, Recharts.
- AST & Graph Engine: @xyflow/react(React Flow),dagre(авто-лейаут графов),node-sql-parser.
- Desktop Native Layer (Tauri / Rust): Direct C++/Rust IPC для DuckDB и асинхронный HTTP-клиент (tokio/reqwest) для ClickHouse.
- Storage & Encryption: Web Crypto API (AES-256 GCM), IndexedDB, JSZip.
Если при первом запуске десктоп-версии блокируется запуск системой безопасности, выполните в терминале:
xattr -cr /Applications/"QueryAST Lens.app"В некоторых дистрибутивах Linux с графической средой Wayland встроенные в AppImage библиотеки libwayland-*.so могут конфликтовать с системными драйверами графики. Если приложение аварийно завершается при запуске, распакуйте AppImage, удалите встроенные библиотеки Wayland (чтобы приложение использовало системные) и запустите:
# 1. Распаковка AppImage
./QueryAST-Lens.AppImage --appimage-extract
# 2. Удаление встроенных библиотек libwayland
rm -f squashfs-root/usr/lib/libwayland-*.so*
# 3. Запуск из распакованной директории
./squashfs-root/AppRun