← На главную

Postgres 18.3 на Rust:pgrust проходит 46 000 тестов, не для продакшена

09.07.2026 06:18 · hackernews

pgrust — это переписанный с нуля на Rust Postgres, совместимый с версией 18.3. Он проходит более 46 000 регрессионных тестов и полностью совпадает с ожидаемым выводом оригинальной СУБД. Более того, pgrust совместим на уровне диска — может загрузиться из существующей папки с данными Postgres 18.3.

Цель проекта — сделать Postgres проще для внутренних изменений. Сохранить поведение «постгресообразным», использовать реальные тесты Postgres как эталон, а с помощью Rust и AI-assisted programming исследовать более глубокие изменения сервера. Но прямо сейчас pgrust не готов для продакшена и не оптимизирован по производительности. Существующие расширения и процедурные языки вроде PL/Python, PL/Perl и PL/Tcl в целом несовместимы. Некоторые встроенные модули contrib уже портированы, со временем совместимость может расшириться.

В планах разработчиков — многопоточные внутренности Postgres, встроенный connection pooling, лучшая поддержка JSON-heavy нагрузок, быстрое форкирование и бранчинг, эксперименты с хранилищем (включая дизайн без vacuum), runtime-ограничения для плохих запросов и AI-сгенерированного SQL, а также уменьшение внезапных смен плохих планов.

Попробовать pgrust можно через WebAssembly-демо на https://pgrust.com. Также есть Docker-образ: docker run -d --name pgrust -e POSTGRES_PASSWORD=secret malisper/pgrust:v0.1. Для macOS и Debian/Ubuntu приведены инструкции по установке зависимостей и сборке через cargo build --release --locked --bin postgres. После сборки нужно инициализировать каталог данных через --initdb и запустить сервер с определёнными флагами (например, -c io_method=sync). Подключаться можно обычным psql-клиентом.

Разработчики просят открывать issue, если что-то сломалось, настройка вызывает вопросы или есть пожелание по улучшению Postgres, которое хочется увидеть первым. pgrust распространяется под лицензией AGPL-3.0.

Читать оригинал →