Rust — компилируемый язык программирования, который начался как личный проект Грэйдона Хора, а дальше развивали Mozilla и открытое сообщество; сейчас за язык отвечает независимая организация Rust Foundation. Как и в случае с другими языками, вы устанавливаете не приложение с кнопками, а набор инструментов: компилятор rustc, сборщик проектов cargo и установщик rustup, который следит за версиями. Код пишут в обычном редакторе — чаще всего в Visual Studio Code или в среде RustRover.
Главная идея Rust — безопасность работы с памятью без сборщика мусора. Компилятор заранее отслеживает, кто владеет каждым значением и как долго, и просто не собирает программу, если данные могут быть прочитаны после удаления или изменены из двух потоков одновременно. В обмен на строгость вы получаете скорость на уровне C и C++ и программы, которые не падают из-за классических ошибок с указателями. Поэтому Rust берут туда, где цена ошибки высока: в операционные системы, браузерные движки, базы данных и сетевые службы под большой нагрузкой.
Что умеет Rust
- Проверка владения данными — правила владения и заимствования проверяются во время сборки. Ошибки вида «обращение к освобождённой памяти» и «две части программы правят одно и то же» становятся не редким сбоем у пользователя, а сообщением компилятора у вас на экране.
- Нет сборщика мусора — память освобождается в момент, когда значение выходит из области видимости. Паузы на уборку отсутствуют, поэтому язык годится для задач, где важна предсказуемая задержка: звук, графика, торговые и сетевые системы.
- Cargo — одна команда создаёт проект, скачивает зависимости, собирает, запускает тесты и готовит документацию. Все библиотеки живут в общем каталоге crates.io, версии фиксируются в файлах Cargo.toml и Cargo.lock.
- Понятные ошибки компилятора — Rust показывает, в какой строке проблема, почему она возникла и что обычно помогает. Для новичка это учебник по ходу работы.
- Типы Option и Result — вместо «пустого» значения и исключений язык требует прямо описать, что делать, если данных нет или операция не удалась. Поэтому забытая проверка ошибки — редкость.
- Многопоточность без гонок — те же правила владения распространяются на потоки: код, в котором два потока одновременно меняют общие данные без защиты, не компилируется.
- Встроенные тесты и документация — тесты пишутся рядом с кодом, примеры из комментариев проверяются при запуске тестов, а справочник собирается из тех же комментариев.
- Работа без операционной системы — Rust используют для прошивок микроконтроллеров и для сборки в WebAssembly, то есть в код, который выполняется прямо в браузере.
- Связка с C — библиотеки на C можно вызывать и наоборот, поэтому Rust добавляют в старый проект по частям.
Язык обновляется раз в шесть недель, но старый код не ломается: крупные изменения синтаксиса выпускают «редакциями», и проект сам выбирает, на какой редакции собираться. Поддержка Rust появилась и в ядре Linux, и в компонентах Android, и в движке Firefox — это самый заметный признак того, что язык вышел за рамки эксперимента.
Кому подходит
- Разработчикам на C и C++, которым нужна та же скорость, но меньше ошибок с памятью и нормальный менеджер зависимостей.
- Тем, кто пишет инфраструктуру: базы данных, прокси, сетевые службы, утилиты командной строки, где важны скорость и устойчивость.
- Разработчикам встраиваемых устройств: язык работает и без операционной системы, с жёстким контролем памяти.
- Командам, которые устали от плавающих сбоев в многопоточном коде: часть таких ошибок Rust просто не пропускает.
Для чего Rust подходит хуже: для первых шагов в программировании и для коротких скриптов «посчитать и выбросить» — строгие правила будут только мешать. Для сайтов с простой логикой и для анализа данных готовых решений на Rust меньше, чем на PHP, Python или JavaScript.
Плюсы
- Ошибки с памятью ловятся до запуска программы
- Скорость на уровне C и C++ без сборщика мусора
- Cargo и единый каталог библиотек — зависимости ставятся одной командой
- Очень подробные подсказки компилятора
- Старый код не ломается при обновлении языка
Минусы
- Высокий порог входа: владение и заимствование нужно действительно понять
- Сборка больших проектов занимает заметно больше времени, чем в Go
- На Windows компилятору нужны дополнительные инструменты сборки от Microsoft
- Документация и сообщения компилятора только на английском
Сколько стоит
Rust бесплатен, включая коммерческое использование: компилятор и инструменты распространяются с открытым кодом сразу по двум лицензиям — MIT и Apache 2.0, а публикация своих библиотек в общем каталоге тоже ничего не стоит. Заплатить придётся только за необязательное окружение: платную среду разработки от JetBrains, если бесплатного редактора мало, и за сервер, где будет работать ваша программа.
Как установить
- Откройте официальный сайт rust-lang.org и скачайте rustup — программу, которая ставит и обновляет компилятор. Для Windows это небольшой exe-файл, для macOS и Linux — команда установки из терминала.
- На Windows установите инструменты сборки от Microsoft: rustup сам предложит их поставить или подскажет, какой компонент Visual Studio нужен. Без них компилятор не сможет собрать готовый файл.
- Запустите установку с вариантом по умолчанию. В комплект войдут компилятор, cargo и документация; путь к ним прописывается автоматически.
- Откройте новое окно терминала и проверьте установку командами rustc —version и cargo —version.
- Поставьте редактор: в Visual Studio Code достаточно расширения rust-analyzer — оно подсказывает типы, показывает ошибки до сборки и умеет переименовывать функции по всему проекту.
Частые вопросы
Чем Rust отличается от Go?
Go проще выучить и быстрее собирается, память в нём освобождает сборщик мусора. Rust строже и сложнее, зато даёт полный контроль над памятью без паузы на уборку и ловит больше ошибок на этапе сборки. Для обычных веб-служб часто берут Go, для требовательных к скорости и надёжности частей — Rust.
Правда ли, что Rust трудно учить?
Первые недели действительно уходят на понимание владения и заимствования: компилятор отклоняет код, который в других языках собрался бы. Дальше становится легче — и сообщения об ошибках подробно объясняют, что исправить. Официальная книга по языку бесплатна и доступна на сайте.
Работает ли Rust из России?
Да. Сайт языка открывается, установщик скачивается, компилятор работает без регистрации. Библиотеки загружаются из общего каталога при сборке; если он недоступен из вашей сети, в настройках cargo указывают зеркало или собственный кэш пакетов.
Нужно ли ставить Visual Studio целиком?
Нет. На Windows достаточно отдельного набора инструментов сборки от Microsoft — установщик Rust подскажет, какой компонент выбрать. Полная среда Visual Studio для работы с Rust не требуется.
Есть ли русский язык?
Интерфейса как такового нет: сообщения компилятора и официальная документация — на английском. Переводы книги и курсы делает сообщество, в комплект языка они не входят.
