Rust: использование в корпоративной среде

21 June 2018 #rust#windows

В последнее время изучаю язык программирования Rust. Довольно долго пытался запустить его в рабочей среде. Проблемы возникали из-за ограничений в безопасности, доступ в сеть только через прокси, на котором так же используется корневой сертификат. В итоге возникали проблемы с установкой rust, и затем в использовании crate. Но обо всем по порядку.

Установка Rust

Первым делом устанавливаем VC++, дистрибутив можно скачать с www.visualstudio.com. Можно ставить только систему сборки, я же ставил Community версию.

Предполагаю, что корневой сертификат уже установлен в систему, поэтому на этом вопросе подробно останавливаться не буду.

Затем ставим сам Rust. Можно установить, используя альтернативный путь, забрав на странице other-installers файл x86_64-pc-windows-msvc и установив его, либо воспользоваться стандартным rustup-init.exe файлом. Но перед этим нужно будет установить переменные окружения: http_proxy и https_proxy, установив их значения в текущий прокси. И так же обязательно задать переменную RUSTUP_USE_REQWEST в 1.

Выполнив эти несложные настройки, можно провести установку Rust в систему, но cargo по прежнему будет ругаться на сертификаты.

Настройка Cargo

Для того, чтобы cargo корректно работал, необходимо изменить конфигурацию для git и для cargo. Меняем файл ~/.gitconfig добавляя:

[credential]
helper = manager

[http]
sslVerify = false

И создаем файл ~/.cargo/config:

[http]
proxy = "proxy:8080"
sslVerify = false
check-revoke = false

[https]
proxy = "proxy:8080"
sslVerify = false
check-revoke = false

Ключевыми опциями тут являются sslVerify и check-revoke.

Настройка VSCode

Для написания кода на Rust существует большое число редакторов, в которых присутствует интеграция с утилитами автодополнения и т.п.

Мне нравится писать в VSCode, достаточно установить расширение Rust и установить требуемые утилиты:

rustup component add rls-preview rust-analysis rust-src
rustup default stable

Чтобы VSCode не ругался на запуск rls, достаточно в конфигурации добавить одну строку:

"rust-client.channel": stable,

Теперь Rust установлен и полноценно работает, даже в корпоративной среде.