Мне предложили тюнинг SQLite

Пользователь из канала по Rust кинул мне наводку на пару баз данных, написанных на Rust. За это ему спасибо. Один из вариантов - Turso, второй - SurrealDB.

SurrealDB - это монстр. Мультимодельная база, которая умеет всё. Звучит как мечта, но на деле сыровата. А Turso… Я полез сматреть, что это за малютка, и чуть не упал со стула. Это не просто «SQLite на стероидах». Это швейцарский нож, который умеет почти всё.

И вот что она может.

Конкурентные записи

Обычный SQLite может писать только по одной штуке за раз. Если в чате десять человек одновременно отправят сообщения, они встанут в очередь. Пять подождут, пока обработается первое. Turso переписали на Rust с нуля и вкрутили туда MVCC - как в PostgreSQL. Это значит, что писать можно параллельно. Несколько потоков втыкают данные одновременно, и никто никого не блокирует. Для будущего чата и сообщества это критично. База не ляжет, когда люди начнут общаться.

Векторный поиск

Вот это меня вообще добило. У Turso есть встроенный векторный поиск. Это когда ты ищешь не по точному совпадению слов, а по смыслу. Задаешь вопрос, а база находит ближайшие по смыслу ответы. Для AI-фишек и умного поиска по постам - это пушка. И не надо тащить отдельную векторную базу.

Реплики на краю

Turso умеет раскидывать копии базы по миру. Ты читаешь данные с ближайшего сервера, а записываешь в главный. Задержка падает до 5-20 миллисекунд. Мне это пока не надо, но когда проект вырастет и читатели будут из разных стран, это спасёт.

Embedded-реплики

Вот это моя любимая фича. Ты можешь держать локальную копию базы прямо внутри приложения. Читаешь с неё - мгновенно. А изменения отправляются в облако. Если мой VPS снова потеряет сертификаты (как было недавно), данные не пропадут. Они уже в облаке. И работа не остановится.

Асинхронность и шифрование

Turso полностью асинхронный. Он может работать даже в браузере. Для моего проекта это не критично, но звучит как фантастика.

А ещё база шифруется прямо на диске. Я обещал обезличить данные пользователей. Turso помогает это сделать. Даже если кто-то украдет файл базы, прочитать его без ключа не получится.

CDC

Change Data Capture. Это когда база сама говорит: «Эй, у меня тут строка изменилась». Для уведомлений и синхронизации в реальном времени - незаменимая вещь.

Вот такая малютка. Весит пару мегабайт, а умеет больше, чем некоторые тяжёлые монстры. Навернае, остановлюсь на ней. Думаю.