> For the complete documentation index, see [llms.txt](https://docs.termina.technology/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.termina.technology/documentation/developer-docs-ru/obzor/ustanovka.md).

# Установка

#### CLI-клиент

`sim`: клиент командной строки для работы с сессиями симуляции без написания кода. С его помощью можно проигрывать исторические слоты, подставлять измененные версии программ и анализировать результаты транзакций.

Готовые сборки есть для Linux и macOS (на процессорах Apple Silicon).

```bash
curl -fsSL https://cli.simulator.termina.technology/install.sh | bash
```

Если `sim` уже установлен, его можно обновить до последней опубликованной версии.

```bash
sudo sim update
```

Для всех команд, которые подключаются к симулятору, нужен API-ключ. Его можно передать флагом `--api-key` или задать в переменной окружения `SIMULATOR_API_KEY`.

```bash
export SIMULATOR_API_KEY=<API_KEY>
```

#### Клиент на Rust

Крейты `simulator-client` и `simulator-api` дают нативный Rust-интерфейс к симулятору Termina. Они подходят командам, которые хотят встроить бэктест прямо в свой код на Rust, а не работать через CLI `sim`.

* **`simulator-client`**: высокоуровневый асинхронный клиент. Он берет на себя работу с протоколом WebSocket и дает удобные методы для основных задач: создать сессию, перейти к следующим слотам, отправить транзакции, прочитать состояние аккаунтов.
* **`simulator-api`**: сами типы протокола (структуры запросов и ответов, варианты ошибок, параметры сессии). Пригодится, если нужен прямой доступ к формату сообщений или хочется написать собственный клиент.

Полный набор примеров от начала до конца есть в [репозитории](https://github.com/nitro-svm/examples) со стартовым кодом.

```toml
[dependencies]
simulator-client = "0.15"
simulator-api = "0.15" # Если нужны только типы протокола (например, чтобы написать свой клиент):
```
