Добавить в корзинуПозвонить
Найти в Дзене
Цифровая Переплавка

🦆 Duck-UI: когда SQL прилетает прямо в браузер

Каждый, кто хоть раз поднимал PostgreSQL ради пары запросов к CSV, наверняка мечтал о чём-то попроще. Без Docker-compose, без pg_ctl start, без погони за зависимостями. И вот оно случилось: Duck-UI превращает браузер в полноценную SQL-среду для аналитики — без серверов, без установки, без риска утечки данных. Duck-UI построен на базе DuckDB WASM, то есть вся база данных и движок SQL работают внутри браузера.
Вместо подключения к серверу браузер загружает бинарь DuckDB, скомпилированный в WebAssembly, и выполняет запросы прямо в памяти клиента. 💡 Это не «демо-игрушка» — производительность почти нативная, ведь WebAssembly выполняется на уровне машинного кода в песочнице браузера. 🧠 Хранилище реализовано через OPFS (Origin Private File System) — новый API, который даёт веб-приложениям приватное файловое пространство на диске. То есть твоя база сохраняется локально, как обычный файл, и переживает перезапуск браузера. Выглядит как мини-DataGrip, только без серверной стороны: 🦆 Полностью
Оглавление

Каждый, кто хоть раз поднимал PostgreSQL ради пары запросов к CSV, наверняка мечтал о чём-то попроще. Без Docker-compose, без pg_ctl start, без погони за зависимостями. И вот оно случилось: Duck-UI превращает браузер в полноценную SQL-среду для аналитики — без серверов, без установки, без риска утечки данных.

⚙️ Как это работает — магия WebAssembly и DuckDB

Duck-UI построен на базе DuckDB WASM, то есть вся база данных и движок SQL работают внутри браузера.
Вместо подключения к серверу браузер загружает бинарь DuckDB, скомпилированный в
WebAssembly, и выполняет запросы прямо в памяти клиента.

💡 Это не «демо-игрушка» — производительность почти нативная, ведь WebAssembly выполняется на уровне машинного кода в песочнице браузера.

🧠 Хранилище реализовано через OPFS (Origin Private File System) — новый API, который даёт веб-приложениям приватное файловое пространство на диске. То есть твоя база сохраняется локально, как обычный файл, и переживает перезапуск браузера.

🧩 Что умеет Duck-UI

Выглядит как мини-DataGrip, только без серверной стороны:

🦆 Полностью автономная работа. Всё — от SQL-движка до хранения данных — происходит в браузере.

📁 Импорт любых форматов. Поддерживаются CSV, JSON, Parquet и Arrow — как с локального диска, так и по URL.

💾 Персистентность через OPFS. Таблицы и базы не исчезают при обновлении вкладки.

🧠 Редактор на базе Monaco. Это тот же движок, на котором работает VS Code: автодополнение, подсветка, история запросов, вкладки.

🌙 Тёмная тема и multi-tab интерфейс. Визуально — приятно, функционально — удобно.

🔌 Подключения к внешним DuckDB-серверам. Если всё же нужен общий доступ к данным — можно подключиться к API.

Duck-UI. Источник: https://demo.duckui.com/
Duck-UI. Источник: https://demo.duckui.com/

🐳 Как запустить

Разработчики сделали всё в духе DevOps-принципа “run and forget”:

docker run -p 5522:5522 ghcr.io/ibero-data/duck-ui:latest

И всё — IDE доступна по адресу http://localhost:5522.
Можно также открыть
demo.duckui.com — и всё заработает прямо в браузере без установки.

🔍 Почему это важно

Duck-UI — не просто «SQL-вкладка в браузере». Это демонстрация того, куда движется аналитика данных:

Без инфраструктуры. Нет серверов, нет контейнеров, нет конфигураций — только чистый код в браузере.

🔒 Безопасно по умолчанию. Все вычисления локальные, данные не покидают твоё устройство. Это решает головную боль compliance и GDPR.

🧱 Идеально для офлайн-анализа. Журналисты, исследователи, аналитики могут загружать таблицы прямо в браузер и строить SQL-сводки без облаков.

💡 Отлично подходит для обучения SQL. Никаких установок — просто открыл страницу и учись писать запросы с мгновенной обратной связью.

🧠 Технические детали и перспектива

Duck-UI основан на DuckDB, известной как “SQLite для аналитики”.
DuckDB работает
в процессе приложения, поддерживая векторизированное выполнение и сжатие данных на уровне Parquet.
Портирование в WebAssembly стало возможным благодаря
emscripten, а OPFS обеспечивает стабильное хранение базы между сессиями.

Любопытная деталь — бэкенд отсутствует вообще: всё, включая автодополнение и обработку схемы, реализовано в JavaScript и WebAssembly.
В теории, можно даже встроить Duck-UI в Jupyter Notebook или локальное desktop-приложение через Electron — получится офлайн-аналитика без Python-стека.

💬 Моё мнение

Duck-UI — это квинтэссенция тренда “serverless в браузере”.
Всё чаще вычисления и базы “переезжают” к пользователю: WebLLM, SQLite WASM, теперь и DuckDB.
Каждый такой шаг делает интернет
чуть более приватным и децентрализованным.

Мне особенно нравится философия проекта:

«Данные становятся лучше, когда мы видим их сами».

Duck-UI буквально возвращает контроль пользователю — и, возможно, именно такие инструменты станут стандартом в эпоху post-cloud.

📚 Источники и ссылки: