Разделы сайта находятся в разработке.

Материалы могут быть неполными или содержать ошибки. Содержимое сайта будет синхронизировано с реализацией при выходе следующей версии, тогда как текущая (0.6.0) предназначена для прототипирования синтаксиса и создания песочницы.

Песочница (playground)

Что такое песочница

Песочница (playground) — это интерактивная веб-страница, где можно писать код на TrustLang прямо в браузере и сразу видеть сгенерированный результат транспиляции в C++. Это «живой» пример языка с встроенным редактором и подсветкой кода, выбором примеров из списка, выводом диагностических сообщений, кросс-навигация между кодом и C++ и кнопкой для скачивания итогового build-архива.

Ссылки на состояние песочницы (URL-параметры)

Страницу песочницы можно открыть сразу в нужном состоянии, передав опциональные параметры в URL (query-string). Все параметры необязательны и без line позиция курсора не меняется:

  • file=<имя файла примера> — выбрать предопределённый файл из списка примеров (комбобокс);
  • win=src|cppt — окно, куда ставится курсор (src — исходный Trust-код, cppt — сгенерированный C++; по умолчанию src);
  • line=<n>, col=<m> — позиция курсора (строки/колонки 1-based; col по умолчанию 1);
  • toLine=<n>, toCol=<m> — конец диапазона выделения (если заданы — выделение от line:col до toLine:toCol, иначе просто установка курсора).

Копирование ссылки: при навигации по строкам внизу страницы в статус-строке выводится диапазон (→ cpp: N / → trust: N) и ссылка «🔗 copy link», клик на которую копирует в буфер обмена URL текущего состояния песочницы (выбранный файл, окно и позицию/выделение курсора), чтобы им можно было поделиться.

Статус-строка песочницы

Страница сама по себе ничего не вычисляет — она отправляет код на роутер/балансировщик (playground), который распределяет задачу транспиляции исходного кода на свободный исполнительный узел (worker), и уже тот выполняет транспиляцию Trust → C++, а результат возвращается обработанным балансировщику и отображается на странице браузера.

Внизу страницы отображается постоянный индикатор связи с балансировщиком:

  • 🟢 balancer online · workers: N — связь есть, воркеры активны;
  • 🟠 balancer online · no workers — связь есть, но свободных воркеров нет;
  • 🔴 no connection to the balancer — балансировщик недоступен (сетевой сбой или балансировщик остановлен).

Как запустить свой воркер

Вы можете помочь проекту и запустить свой узел-исполнитель за несколько минут. Для этого нужно:

  • Linux-сервер (VPS) с systemd и возможностью исходящего TCP-соединения к балансировщику (обычный интернет).
  • Дистрибутив trust-lang-*.tar.gz или deb пакет (содержит trust-playground и trust-lsp).
  • Токен воркера (64 hex-символа) — выдаются администратором.

Песочница работает по трёхуровневой схеме

браузер (статическая страница)
        │  POST /run, GET /health, POST /download
        ▼
балансировщик (playground)
        │  реестр воркеров, очередь запросов, rate-limit, статистика
        ▼
исполнительные узлы (worker)     ←  подключаются сами (исходящее соединение),
        │                             reverse long-poll за задачами
        ▼
   trust-lsp --json             ← (локальное выполнение Trust → C++)

Ключевые особенности:

  • Роутер/балансировщик не выполняет вычислений — только принимает запросы, ведёт реестр воркеров и диспетчеризует задачи. Слушает локально (127.0.0.1), наружу его отдаёт nginx по HTTPS.
  • Воркеры сами подключаются к балансировщику (исходящее соединение — двойной NAT не мешает), регистрируются по токену и выполняют транспиляцию в изолированном субпроцессе с лимитами памяти, времени и размера вывода.
  • Если свободных воркеров нет, балансировщик отвечает «нет воркеров» со ссылкой на эту инструкцию.

Шаги

  1. Получите токен доступа у администратора проекта (admin@trust-lang.net). Воркер аутентифицируется этим токеном.

  2. Скопируйте или соберите дистрибутив:

    cmake -B _build && cmake --build _build --target trust-playground trust-lsp
    cmake --build _build --target package
    
  3. Запустите воркер напрямую (без root и без скрипта установки). Он читает настройки из trust-playground.conf рядом с бинарником или через опции в командной строке:

    ./trust-playground --token <ТОКЕН> --lsp /path/to/trust-lsp
    

    После чего в консоли появится сообщение settings saved to ./trust-playground.conf as defaults и запустится воркер со статистикой работы в реальном времени, а в следующий раз для запуска будет достаточно просто:

    ./trust-playground
    

    Или для работы в фоне:

    nohup ./trust-playground >> trust-playground-worker.log 2>&1 &
    

    Остановка в фоне: pkill -x trust-playground.