Инициатива по созданию порта PostgreSQL на языке Rust

09.01.2017 09:42

Джоэль Якобсон (Joel Jacobson) выступил с инициативой создания варианта СУБД PostgreSQL, переведённого на язык Rust. Порт будет развиваться под именем RustgreSQL. Перевод с Си на Rust планируется полностью автоматизировать и обеспечить трансляцию основной master-ветки PostgreSQL в представление на языке Rust c автоматической конвертацией всех новых коммитов, т.е. код RustgreSQL будет синхронизирован с PostgreSQL.

В качестве мотива создание порта называется избавление от необходимости оглядки на усложнённые детали при работе с памятью на языке Си и возможность задействования средств по обеспечению безопасного программирования, предоставляемых языком Rust. Автоматическое управление памятью в Rust избавляет разработчика от манипулирования указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей и выход за границы буфера.

Джоэль Якобсон занимается поддержанием системы электронных платежей Trustly, охватывающей 52 банка в 7 странах и использующей для обработки данных и бизнес-логики только СУБД PostgreSQL. Trustly разрабатывает ряд дополнений для PostgreSQL, а сам Джоэль является автором входящего в PostgreSQL набора функций и представлений pg_stat_xact_* и также известен работой по обеспечению предсказуемого порядка вывода записей в pg_dump и участием в разработке SQL-расширения PL/PgSQL 2.

В сообществе инициатива пока встречена скептически, например, организация автоматической трансляции кода из Си в Rust сравнивается по уровню сложности с разработкой самого PostgreSQL. Переход разработки PostgreSQL с языка Си оценивается как нереалистичный, требующих огромных трудозатрат и лишённый убедительных причин.