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

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

## Установка Rust

Первым делом устанавливаем VC++, дистрибутив можно скачать с [www.visualstudio.com](https://www.visualstudio.com/ru/vs/). Можно ставить только систему сборки, я же ставил Community версию.

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

Затем ставим сам Rust. Можно установить, используя альтернативный путь, забрав на странице [other-installers](https://www.rust-lang.org/en-US/other-installers.html) файл x86_64-pc-windows-msvc и установив его, либо воспользоваться стандартным rustup-init.exe файлом. Но перед этим нужно будет установить переменные окружения: `http_proxy` и `https_proxy`, установив их значения в текущий прокси. И так же обязательно задать переменную `RUSTUP_USE_REQWEST` в 1.

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

## Настройка Cargo

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

```gitconfig
[credential]
helper = manager

[http]
sslVerify = false
```

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

```ini
[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](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust) и установить требуемые утилиты:

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

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

```conf
"rust-client.channel": "stable",
```

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

