Первая программа на Rust
Первая программа на Rust
Установка инструментов
Для работы с Rust требуется установка набора инструментов, известного как Rustup. Это официальный установщик и менеджер версий языка. Он автоматически загружает и настраивает всё необходимое: компилятор rustc, менеджер пакетов и зависимостей cargo, а также документацию.
Шаг 1. Скачивание и запуск установщика
Установка выполняется через командную строку. На большинстве Unix-подобных систем (Linux, macOS) достаточно выполнить одну команду в терминале:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Эта команда загружает скрипт установки с официального сайта и передаёт его интерпретатору оболочки. Скрипт спрашивает, какую конфигурацию выбрать. Рекомендуется оставить вариант по умолчанию — default host triple — и нажать Enter. Это установит стабильную версию Rust для текущей операционной системы и архитектуры.
На Windows процесс аналогичен. Следует скачать исполняемый файл rustup-init.exe с официального сайта и запустить его. Установщик предложит те же варианты, что и в Unix-версии.
Шаг 2. Обновление переменной окружения PATH
После завершения установки скрипт автоматически добавляет каталог ~/.cargo/bin в переменную окружения PATH. Это необходимо для того, чтобы команды rustc и cargo были доступны из любого места в терминале.
В некоторых случаях, особенно после установки в графической среде, может потребоваться перезапустить терминал или выполнить команду:
source "$HOME/.cargo/env"
Это загружает обновлённые настройки окружения в текущую сессию.
Шаг 3. Проверка установки
Чтобы убедиться, что всё работает корректно, следует проверить версии установленных компонентов:
rustc --version
cargo --version
Команды должны вывести информацию о версиях компилятора и менеджера пакетов. Например:
rustc 1.78.0 (9b00956e5 2024-04-29)
cargo 1.78.0 (54d8815d0 2024-04-23)
Наличие номеров версий подтверждает успешную установку.
Выбор интегрированной среды разработки
Rust не требует конкретной IDE, но использование специализированных инструментов значительно ускоряет разработку. Основной компонент, обеспечивающий поддержку языка в редакторах, — это rust-analyzer. Это сервер языка, реализующий протокол Language Server Protocol (LSP). Он предоставляет такие функции, как автодополнение, навигация по коду, подсветка ошибок в реальном времени, рефакторинг и быстрый просмотр типов.
Поддерживаемые редакторы
-
Visual Studio Code — наиболее популярный выбор. Для работы с Rust требуется установка расширения rust-analyzer из Marketplace. После установки расширение автоматически обнаруживает проекты Rust и активирует все возможности языкового сервера.
-
JetBrains IntelliJ IDEA / CLion / RustRover — мощные коммерческие IDE с отличной поддержкой Rust через плагин. Особенно рекомендуется RustRover, специализированная среда от JetBrains, созданная специально для Rust.
-
Vim / Neovim — для пользователей этих редакторов доступны плагины, такие как coc.nvim или nvim-lspconfig, которые интегрируют rust-analyzer.
-
Emacs — поддержка осуществляется через пакет lsp-mode и rust-mode.
Выбор редактора зависит от личных предпочтений и опыта. Для новичков рекомендуется начать с Visual Studio Code из-за простоты настройки и богатой экосистемы расширений.
Создание первого проекта
Rust использует Cargo как центральный инструмент управления проектами. Cargo отвечает за создание структуры проекта, компиляцию кода, управление зависимостями, запуск тестов и сборку дистрибутивов.
Шаг 1. Инициализация проекта
Откройте терминал и перейдите в каталог, где вы хотите создать проект. Выполните команду:
cargo new hello_rust
Эта команда создаёт новый каталог hello_rust со следующей структурой:
hello_rust/
├── Cargo.toml
└── src/
└── main.rs
Файл Cargo.toml — это манифест проекта. Он содержит метаданные: название, версию, зависимости, настройки сборки. По умолчанию он выглядит так:
[package]
name = "hello_rust"
version = "0.1.0"
edition = "2021"
[dependencies]
Раздел [package] описывает сам проект. Поле edition указывает, какую версию языка использовать. Rust сохраняет обратную совместимость через выпуски (editions), и 2021 — это актуальная стабильная версия на момент написания.
Каталог src содержит исходный код. Файл main.rs — точка входа в программу. Его содержимое по умолчанию:
fn main() {
println!("Hello, world!");
}
Это и есть первая программа на Rust.
Шаг 2. Анализ структуры программы
Программа состоит из одной функции — main. Это специальное имя, которое компилятор ищет как стартовую точку выполнения. Тело функции заключено в фигурные скобки {}.
Вызов println! — это макрос, а не обычная функция. Макросы в Rust обозначаются восклицательным знаком. Они позволяют генерировать код на этапе компиляции, что делает их мощным инструментом метапрограммирования. Макрос println! выводит текст в стандартный поток вывода (обычно терминал) и добавляет символ новой строки в конце.
Строка "Hello, world!" — это строковый литерал. В Rust строки по умолчанию имеют тип &str (срез строки), который является эффективной ссылкой на неизменяемую последовательность UTF-8 символов.
Каждое выражение в Rust завершается точкой с запятой, если оно не возвращает значение, предназначенное для использования в другом месте. В данном случае вызов println! ничего не возвращает, поэтому требует точки с запятой.
Компиляция и запуск программы
Cargo предоставляет удобные команды для сборки и выполнения проекта.
Шаг 1. Запуск в режиме разработки
Выполните в корне проекта:
cargo run
Эта команда автоматически компилирует проект и запускает полученный исполняемый файл. Вывод будет таким:
Compiling hello_rust v0.1.0 (/path/to/hello_rust)
Finished dev [unoptimized + debuginfo] target(s) in 0.35s
Running `target/debug/hello_rust`
Hello, world!
Cargo создаёт исполняемый файл в подкаталоге target/debug/. Режим сборки по умолчанию — dev — оптимизирован для скорости компиляции и включает отладочную информацию, что полезно при разработке.
Шаг 2. Запуск в режиме релиза
Когда программа готова к распространению, её собирают в режиме release:
cargo build --release
Этот режим включает все уровни оптимизации компилятора, что значительно увеличивает производительность, но замедляет саму сборку. Исполняемый файл помещается в target/release/.
Для запуска релизной версии:
cargo run --release
Шаг 3. Только компиляция
Если нужно только собрать программу без запуска, используется команда:
cargo build
или
cargo build --release
После этого можно запустить исполняемый файл напрямую:
./target/debug/hello_rust
(на Windows путь будет .\target\debug\hello_rust.exe)
Дальнейшие шаги и рекомендации
Первая программа — это отправная точка. Rust предоставляет богатую стандартную библиотеку и огромное количество внешних пакетов через реестр crates.io. Чтобы добавить зависимость, её описание помещают в раздел [dependencies] файла Cargo.toml. Например:
[dependencies]
rand = "0.8"
После этого Cargo автоматически скачает и скомпилирует указанную версию библиотеки при следующем запуске cargo build.
Также рекомендуется изучить встроенную документацию. Команда:
rustup doc
открывает локальную копию официальной документации в браузере. Это особенно полезно при отсутствии интернета или для быстрого поиска информации.
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Инициатором проекта стал Graydon Hoare, тогда — независимый исследователь и разработчик, работавший в Mozilla с 2006 года. До этого он участвовал в разработке компиляторов и языковых инструментов,… Фундамент для начинающего программиста - что повторить, как работать, чего ожидать. Набор советов, правил, принципов и обычаев в разработке на этом языке. Черты могут иметь методы по умолчанию. Если тип не переопределяет метод, используется версия из черты. Это позволяет расширять функциональность без изменения базового кода. fn - ключевое слово, которое обозначает начало объявления функции. Функция представляет собой именованный блок кода, выполняющий конкретную задачу. В данном случае функция называется main. Rust — это язык системного программирования, сочетающий безопасность памяти, высокую производительность и выразительность. Его экосистема охватывает широкий спектр областей — от встраиваемых систем… Системное программирование — это разработка программного обеспечения, отвечающего за взаимодействие с аппаратной частью компьютера и операционной системой. Такое ПО создаёт фундамент, на котором… Кавычки, точки, запятые, скобки и прочие знаки препинания. Ключевое слово Значение -------------------------- abstract Зарезервировано для будущих версий языка become Зарезервировано для будущих версий языка box Зарезервировано для будущих версий языка do… Макрос / Атрибут Назначение ------------------------------ test Пометка функции как теста для cargo test should_panic Ожидание паники при выполнении теста ignore Пропуск теста при обычном запуске… Типизация, набор правил определения типа данных значений языка. Циклы в Rust — это конструкции, предназначенные для многократного выполнения блока кода до тех пор, пока выполняется определённое условие или не исчерпан набор данных. В отличие от многих других…История языка Rust
Что требуется знать перед началом изучения языка программирования Rust
Рекомендации по разработке на Rust
Rust для начинающих
Основы языка Rust
Экосистема приложений на Rust
Системное программирование на Rust
Синтаксис и пунктуация в Rust
Ключевые слова языка Rust
Встроенные функции и стандартная библиотека
Типы данных и владение памятью
Управляющие конструкции и циклы в Rust