Вы думали о том, чтобы попробовать Rust? Начните работу за считанные секунды с VSCode и Devcontainers!

Rust — новичок в мире, и в настоящее время — и совершенно справедливо — он вызывает много шума. Есть много причин любить Rust, но я думаю, что они хорошо освещены во многих других статьях. Вместо того, чтобы расхваливать сам Rust, я буду использовать Rust, чтобы еще раз показать, что Dev Containers с VS Code — это очень мощные инструменты, которые, как мне кажется, должны быть у всех разработчиков!

Я предполагаю, что хотя многие из вас, читающие статьи в технических блогах, слышали о Rust. Но я также предполагаю, что не так уж много людей установили инструменты на свои машины и начали играть с Rust?

Это не будет учебник по языку Rust — таких много! Вместо этого в этой статье будет показано, как настроить среду разработки для Rust, используя Visual Studio Code и Docker. Я покажу, как создать полнофункциональную среду разработки Rust в контейнере Docker, чтобы вы могли приступить к работе, не устанавливая на свой компьютер ничего специфичного для Rust.

Чтобы проиллюстрировать это, я создам простой пример API, используя Acitx. Конечно, было бы неинтересно, если бы я не добавил немного тестов, так что я тоже этим займусь!

Согласно моим предыдущим руководствам по этой теме, предварительные условия на вашем компьютере следующие:

Код для этого можно найти здесь. Клонируйте репо, если хотите перейти к концу!

Пойдем!

Начните с создания пустой папки, перейдите в нее, а затем откройте VSCode. Скопируйте и вставьте это в свой терминал или сделайте это по старинке через проводник.

mkdir rust-devcontainer; \
cd rust-devcontainer; \
code .;

Когда откроется VSCode, нажмите F1 и найдите Добавить контейнер разработки. Примечание: у вас должно быть установлено расширение.

Найдите «Rust» и добавьте файлы конфигурации контейнера.

Выберите версию по умолчанию (buster на момент написания).

Пропустите любые дополнительные функции и нажмите «ОК».

Когда файлы конфигурации будут автоматически добавлены, VSCode покажет всплывающее окно, которое позволит вам открыть контейнер. Нажмите «Повторно открыть в контейнере», чтобы открыть среду в Docker.

Примечание. Если всплывающее окно не появляется, нажмите F1 и выполните поиск по запросу "повторно открыть в контейнере"

Докажите себе, что теперь вы работаете в контейнере со всеми установленными инструментами Rust, открыв терминал и проверив, доступны ли инструменты Rust:

Когда вы находитесь в среде Rust, настроить простой API довольно просто. Начните с инициализации нового проекта Rust, открыв терминал в VSCode и введя следующую команду:

cargo init

Чтобы показать, что мы действительно уже работаем со средой ржавчины, перейдите к файлу src\main.rs и добавьте следующее:

fn main() {
   println!("Hello World!");
}

Затем в терминале VSCode введите следующее:

cargo run

Вот и все! У нас есть полнофункциональная среда разработки Rust, и мы готовы создавать любое количество приложений.

Далее давайте создадим демонстрационный API с помощью Actix.

Простой API

Добавьте зависимость для Actix в файл cargo.toml.

Примечание. Пока я использую бета-версию.

[dependencies]
actix-web = "4.0.0-beta.21"

Затем удалите пример «hello world» и добавьте его в файл src\main.rs:

Чтобы убедиться, что он работает, откройте терминал, введите

cargo run

Это запустит API, работающий на http://127.0.0.1:8080

И если вы перейдете по этому URL-адресу в браузере, вы увидите, что он ведет себя так, как ожидалось.

Пока все хорошо, и мы, вероятно, могли бы закончить на этом день. Но я никогда не буду удовлетворен, пока не будет запущен хотя бы один модульный тест, так что давайте сделаем это.

Тестирование

Вернувшись в файл src\main.rs, добавьте следующий код под логикой:

И запустите тест, зайдя в терминал в VSCode и набрав следующее:

cargo test

Вы должны увидеть прохождение теста!

Это полезная тестовая установка, но мне нравится тестовый проводник, так что VSCode больше похож на «настоящую IDE». Как всегда, сообщество предоставило один.

В файле .devcontainer\devcontainer.json добавьте две дополнительные строки в свойство extensions

"swellaby.vscode-rust-test-adapter",
"ms-vscode.test-adapter-converter"

Вам нужно будет выйти и снова войти в удаленный контейнер, чтобы увидеть изменения (F1, обратно в WSL, затем обратно в devcontainer). Когда вы перезагрузите среду, вы увидите знакомый проводник тестов VSCode. Вы можете запускать тесты прямо из проводника!

Предполагая, что все в порядке, вы можете перемещаться и запускать тесты из обозревателя тестов VSCode.

Заключение

Я думаю, что это хорошее место, чтобы остановиться на данный момент. Мы настроили довольно полную среду разработки Rust с базовым API, примером модульного теста и некоторыми установленными базовыми расширениями Rust для VSCode.

Поскольку все это настраивается с помощью devcontainers, этой настройкой можно очень легко поделиться среди команды, чтобы все заработали в согласованной среде разработки Rust буквально за секунды — столько же, сколько требуется для клонирования репозитория!

Надеюсь, это было полезно для тех, кто дочитал до конца! Я надеюсь, что я преобразовал хотя бы несколько новых «Растообразных»!

Want to Connect?
You can get in touch on Linkedin.