Что мы на нём делаем

Rust — наш выбор для тех частей системы, где ошибиться дорого, а работать медленно нельзя. Обработка документов и графики, парсеры, CLI-инструменты и сервисы, бюджет задержки которых измеряется миллисекундами, а не сотнями миллисекунд.

Что мы получаем взамен — предсказуемость. Нет сборщика мусора, значит нет пауз, которые невозможно объяснить; модель владения означает, что целый класс ошибок конкурентности не доживает до ревью; а бинарник на Rust кладётся на сервер или в контейнер без рантайма рядом с ним.

Где мы его применили

dxpdf — наш самый крупный проект на Rust, и он с открытым кодом: самостоятельный конвертер DOCX в PDF на базе Skia, которому не нужны ни Microsoft Office, ни облачное API. Трёхстраничный документ с таблицами и изображениями он конвертирует примерно за 113 мс при пике памяти в 19 МБ — достаточно быстро, чтобы вызывать его прямо в обработчике веб-запроса.

Как устроен конвейер рендеринга, мы разобрали в статье про рендеринг PDF на Skia и Rust.

Когда мы его рекомендуем

Rust окупается на горячих участках, в долгоживущих сервисах, где важно поведение памяти, и в инструментах, которые вы отдаёте другим людям в виде бинарника.

Он не окупается на обычном CRUD. Разработка идёт медленнее, нанимать сложнее, а типичный эндпоинт всё равно ждёт базу, а не процессор — Go или Python доедут быстрее и обойдутся дешевле в поддержке. Мы берём Rust там, где так говорит профайлер, а не по умолчанию.