Rust: использование в корпоративной среде
В последнее время изучаю язык программирования 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 установлен и полноценно работает, даже в корпоративной среде.