инструменты 1 мин

Хранение версий текста в SQLite через сжатие: эксперимент с 250-кратным уменьшением объёма

Саймон Уиллисон протестировал идею хранения истории изменений текста в SQLite через сжатие JSON-массива всех версий. Результат: 1000 ревизий документа (20.4 МБ сырого текста) сжались до 80.3 КБ с помощью Zstandard. Прототип сгенерировал ChatGPT Voice mode + GPT-5.6 Sol Pro за 38 минут.

Показывает, как простая идея и новые AI-инструменты (ChatGPT Voice) могут за полчаса решить проблему, над которой раньше бились днями. Плюс конкретное решение для всех, кто строит версионность в SQLite.

Что произошло

Саймон Уиллисон (автор Datasette) поделился экспериментом с хранением версионности в SQLite. Классическая проблема: каждая правка документа в 20 КБ добавляет ещё 20 КБ в базу. Диффы сложны, дельта-кодирование хрупкое.

Новый подход: сложить все версии текста в JSON-массив строк и сжать одним куском через zlib/zstd. Гипотеза: повторяющиеся фрагменты между версиями должны отлично сжиматься.

Проверял через ChatGPT Voice mode (новый GPT-Live на iPhone) — надиктовал идею голосом, потом дал команду «Use Python and build experimental prototypes». GPT-5.6 Sol Pro работал 38 минут, выдал рабочий код.

Результаты теста: 1000 симуляций правок документа → 20.4 МБ сырого текста → 80.3 КБ в Zstandard (коэффициент сжатия ~250x). Для оптимизации предложено разбивать историю на чанки по 128 ревизий или 3 МБ несжатых данных — чтобы не распаковывать всё при каждой правке.

Хранится в двух колонках: blob со сжатым JSON-массивом текстов + несжатый массив timestamp'ов (целые числа, сжимать не нужно).

SQLiteкомпрессияверсионностьChatGPTпрототипирование

Автор: Марина Соколова · Источник: simonwillison.net

Разработчикам. Готовое решение для версионности в SQLite без сложных диффов: два BLOB-поля (сжатый JSON-массив версий + массив timestamp'ов), коэффициент сжатия до 250x на реальных данных. Можно адаптировать под CMS, wiki-движки, collaborative editors. Код и прототип уже есть.

Бизнесу. Радикальное снижение затрат на хранение истории изменений в SaaS-продуктах (документы, заметки, коллаборативные редакторы). Вместо дорогих версионных хранилищ — обычная SQLite с компрессией. Потенциально удешевляет инфраструктуру для Notion-подобных сервисов.

Инвесторам. Показательный кейс использования новых возможностей ChatGPT (voice mode + долгая генерация кода) для прототипирования. Подход может повлиять на архитектуру collaborative software (Notion, Coda, Linear) — упрощение стека и снижение costs на хранение.

Хайп25
Реальная польза60
Заработать55
  • Открытая библиотека для Python/JS с этим паттерном — продать как sqlite-versioning или добавить в Datasette как плагин
  • SaaS-сервис для версионности: API, который принимает текст и отдаёт сжатую историю (managed SQLite в облаке)
  • Интеграция в low-code платформы (Retool, Baserow, NocoDB) — кнопка «включить версионность» без костылей
  • Консалтинг для enterprise: миграция legacy систем с раздутыми revision-таблицами на сжатую схему — экономия на storage
  • Educational контент: курс «Эффективная работа с SQLite» с кейсами вроде этого — монетизация через Gumroad/Maven
  • Распаковка всей истории при каждом чтении старой версии — если нужен быстрый доступ к произвольной ревизии, подход не подходит
  • Corruption риск: если сжатый blob повредится, теряется вся история разом (в отличие от построчного хранения)
  • Масштабируемость под вопросом: на миллионах документов и тысячах ревизий в каждом могут быть проблемы с памятью при декомпрессии
  • Это эксперимент одного человека, а не production-tested решение — реальные edge cases не проверены

Это один из тех кейсов, когда простое решение оказывается лучше умных алгоритмов. Вместо сложных диффов и дельта-кодирования — тупо запаковать всё вместе, и компрессор сам найдёт повторы. Работает отлично для 90% задач (аудит, wiki, CMS), где старые версии читаются редко.

Второй инсайт — ChatGPT Voice mode уже не игрушка. Саймон надиктовал идею на ходу, модель поняла с полуслова, сгенерила рабочий прототип за 38 минут. Это новый уровень для solo-разработчиков: от мысли до MVP без отрыва от прогулки. Да, это ещё эксперимент, но направление очевидно — voice-first coding станет нормой быстрее, чем мы думаем.

Инструменты из статьи

Универсальный AI-ассистент OpenAI: тексты, код, анализ, изображения, голос.

Доступ из РФ →

Ещё по теме

Комментарии