Skip to content

Repository files navigation

Moonbot

MoonTerminal

Кроссплатформенный десктопный торговый терминал для ядра Moonbot
GPU-рендеринг графиков · живой поток MoonProto · Windows · macOS · Linux

Build Release Статус: в разработке Платформы Сделано на Rust GPU-бэкенды

Русский · English   |   Возможности · Скриншоты · Архитектура · Сборка · Конфигурация · Документация

Инструкция для пользователей — интерактивный тур по интерфейсу терминала

MoonTerminal — нативный десктопный торговый терминал для ядра криптотрейдинга Moonbot. Он показывает живые графики, стаканы, ордера, отчёты и стратегии для одного или нескольких ядер Moonbot в едином GPU-ускоренном окне под Windows, macOS и Linux.

В разработке. Это рабочее пространство активной разработки терминала: оболочка на GPUI, интеграция MoonUI, живой поток данных MoonProto, платформенный GPU-рендеринг графиков и отладочный инструментарий. Это ещё не готовый упакованный продукт.

Главное окно MoonTerminal

Возможности

  • GPU-рендеринг графиков — собственный GPU-проход на каждой платформе (DirectX 11 под Windows, Metal под macOS, нативный wgpu под Linux). Без CPU-readback, поэтому live-скролл и зум остаются плавными и не перерисовывают всё окно.
  • Живой поток MoonProto — событийные рыночные данные через backend-цикл на waker'е. Видимый график подтягивает данные на кадровом тике, а не постоянным поллингом.
  • Торговые панели — ордера и редактирование ордеров, стакан, отчёты, активы и кошельки, рыночный скринер и дерево стратегий для ваших ядер Moonbot.
  • Ордерные линии на графике — строятся из текущего снапшота плюс захваченных событий, поэтому короткие терминальные статусы (Cancel / Fail / Done) не теряются.
  • Открепляемые окна — вкладки графиков и панели дока выносятся в отдельные окна; состояние дока и раскладки сохраняется между сессиями.
  • Локализация интерфейса — русский, английский и испанский через rust-i18n.
  • Шифрованная конфигурация — учётные данные серверов хранятся в защищённом хранилище / кейринге ОС (Secret Service под Linux).
  • Мелочи для повседневной работы — звуки алертов, иконки монет, свои хоткеи и темы, а также встроенный chart-smoke FireTest, который проверяет живые bounds графика, нативный ввод и счётчики CPU/GPU/RAM.

Скриншоты

Рабочая область графиков Настройки — подключения / ядра Moonbot
Графики — GPU-рендеринг свечей, стакан, ордерные линии Настройки → Подключения — настройка по каждому ядру

Архитектура

MoonTerminal — виртуальный workspace на Rust: UI-независимое ядро, поверх которого работает оболочка на GPUI.

Крейт Ответственность
moon-core UI-независимое ядро — подключения, конфиг, сессии, market state, отчёты.
moon-chart Математика графика — time/price view, дефолтный масштаб, pan/zoom, оси (без wgpu).
moon-ui-gpui Бинарь moonterminal — GPUI shell, панели, debug-инструменты, интеграция графика.
Moonbot-Tech/MoonUI Внешняя Git-зависимость — standalone GPUI runtime + компоненты Moon UI.

Рендер. График рисуется отдельным GPU-проходом поверх MoonUI/GPUI — DX11/HLSL под Windows, Metal под macOS, нативный wgpu/WGSL-бэкенд GPUI под Linux. График сам решает, нужен ли кадр, и готовит данные к этому же кадру, поэтому оболочка и панели ордеров не перерисовываются на частоте live-скролла или движения мыши.

Data path. События MoonProto приходят через event sink с waker'ом; backend-цикл будится реальными событиями и командами, а не таймером. Видимый график тянет рыночные данные на кадровом тике, а core-owned общий read-model обслуживает остальных потребителей.

Полная картина — в документе об архитектуре.

Сборка

Клонирование

git clone https://github.com/Moonbot-Tech/MoonTerminal.git
cd MoonTerminal

Windows

Требования:

  • Git
  • Rust через rustup
  • Visual Studio 2022 Build Tools с C++-тулчейном и Windows SDK
  • Опционально: make
cargo build -p moon-ui-gpui --bin moonterminal --target x86_64-pc-windows-msvc

Отладочный исполняемый файл:

target\x86_64-pc-windows-msvc\debug\moonterminal.exe

macOS

Требования:

  • Xcode или рабочий Metal-тулчейн
  • Rust через rustup
cargo build -p moon-ui-gpui --bin moonterminal

Каноничная проверка Metal — см. гайд по сборке под macOS и Linux.

Linux

Базовый набор для Ubuntu/Debian:

sudo apt update && sudo apt install -y git build-essential pkg-config \
  libfontconfig-dev libwayland-dev libxkbcommon-dev libvulkan-dev libssl-dev
cargo build -p moon-ui-gpui --bin moonterminal

Шифрованный конфиг под Linux использует Secret Service в пользовательской GUI/DBus-сессии. Подробности — в гайде по сборке под macOS и Linux.

Основные команды

Команда Назначение
make run собрать и запустить отладочный терминал
make build отладочная сборка
make release релизная сборка
make check проверка типов
make fmt cargo fmt
make clean очистить target
make update-moon-ui сдвинуть пин MoonUI в коммитимом Cargo.lock
make update-moonproto сдвинуть пин MoonProto (отдельным осознанным коммитом)
make update-all сдвинуть ВСЁ, включая сторонние пины — снимает заморозку версий

Makefile выбирает MSVC-таргет на Windows и нативный таргет на macOS/Linux.

Конфигурация

Серверы настраиваются в интерфейсе приложения:

Настройки → Подключения

Настройка подключений по каждому ядру — см. скриншот «Настройки → Подключения» выше.

Рантайм-конфиг лежит рядом с исполняемым файлом. Учётные данные серверов хранятся в шифрованном конфиге через защищённое хранилище/кейринг ОС, где доступно. Локальные конфиг-файлы и логи игнорируются Git.

Документация

Документ Что внутри
Инструкция для пользователей Интерактивный тур: карта главного окна, первое подключение, панели, хоткеи
Архитектура Крейты, платформенный GPU-рендеринг и живой data path
FireTest Встроенный live-зонд chart-smoke
Сборка под macOS и Linux Проверка Metal и настройка Linux
Окна Своя шапка окна и borderless/CSD-поведение

Moonbot · Продвинутый терминал для торговли криптовалютой · moonbot.pro

About

Development repository for the Moonbot cross-platform terminal

Resources

Contributing

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages