Команда Turso объявила, что берётся за написание современной версии Postgres «в Turso» — на своём же движке, написанном на Rust. Звучит диковато, но идея простая: Turso становится «LLVM для баз данных». Единое, надёжное ядро, на которое компилируются разные диалекты SQL. Первым компилируемым фронтендом был SQLite. Следующим станет Postgres. Потом — что угодно, хоть Redis.
С чего всё началось. Turso изначально был полной перезаписью SQLite на Rust — файл-совместимой, но с принципиально другой архитектурой. В нём есть конкурентная запись через MVCC, богатая система типов и, внимание, живые Materialized Views. Да, те самые, которые обновляются сами, без ручных REFRESH MATERIALIZED VIEW и костылей с триггерами. Мечта любого пользователя Postgres лет двадцати. Ещё Turso асинхронен, спокойно работает в браузере, покрыт тоннами тестов — от Deterministic Simulation Testing до формальных методов. И это проект с открытым вкладом: 260+ контрибьюторов, AI-патчи приветствуются, но только качественные.
В чём фокус. Секрет SQLite (и Turso) в том, что это не просто база данных, а виртуальная машина. SQL компилируется в байткод VDBE — свой язык с командами вроде «найди что-то в B-дереве». Когда команда Turso поняла, что фундаментально Postgres и SQLite не так уж далеки (оба сводятся к B-деревьям и индексам), они решили: сделаем фронтенд сменным. Разбираем Postgres-запрос в общее AST, компилируем его в VDBE — готово. Эксперимент под названием pgmicro уже влит в основную ветку. Сейчас это не готовый продукт, а работающий фундамент — но вы уже можете собрать его из исходников командой cd postgres/cli && cargo run.
Чтобы доказать, что VDBE — полноценная VM, команда портировала Doom: они написали крошечный компилятор с C на VDBE, и игра запускается прямо на движке базы данных. Каждый кадр — одна строка результата SELECT.
Будущее. Полной совместимости на 100% не обещают — будет «достаточно совместимо». Например, бессмысленно реализовывать неживые Materialized Views ради совместимости. Wire protocol и серверный режим сделают, так что psql и ORM подключатся как обычно. Расширения Postgres планируют грузить через WASM-контейнеры — с потерей производительности, но без дыр в безопасности. PL/pgSQL, скорее всего, заменят на что-то своё с прослойкой совместимости. Лицензия — MIT. Сроки? Не торопятся. Как говорят основатели (Пекка и Глаубер, обоим под 44): медленно и правильно — единственный способ для базы данных. Но рабочий подмножество Postgres планируют выкатить через пару месяцев. Дальше — open source community.