Образование

ByteLab — онлайн-компилятор

Учебная среда Python в браузере: теория, редактор и проверка заданий без установки.

Интерфейс онлайн-компилятора Python с редактором кода.

Назначение ByteLab

ByteLab — интерактивная браузерная среда для изучения языка Python без необходимости устанавливать интерпретатор, настраивать окружение или запускать локальные редакторы кода.

Сервис объединяет редактор кода, запуск программ, вывод результатов, учебные теоретические модули, практические задания и проверочные мини-квизы в едином интерфейсе.

Интеграция редактора Monaco Editor

В основе интерфейса написания кода лежит Monaco Editor (технология, лежащая в основе VS Code).

Поддерживается полноценная подсветка синтаксиса Python, горячие клавиши (включая Ctrl+Enter для мгновенного выполнения), визуальные маркеры синтаксических ошибок и удобный опыт редактирования.

Клиентский рантайм Pyodide в Web Worker

Ключевое архитектурное отличие ByteLab — запуск кода пользователя происходит непосредственно в браузере с помощью WebAssembly-порта Python (Pyodide), без исполнения непроверенного кода на сервере.

Рантайм вынесен в отдельный Web Worker: - Обеспечивается потоковый вывод данных в стандартные потоки stdout и stderr; - Глобальные переменные изолируются между запусками; - Реализован тайм-аут выполнения (~5 секунд): при бесконечном цикле или зависании пользовательского скрипта воркер принудительно уничтожается и создаётся заново, сохраняя отзывчивость интерфейса; - Введены защитные лимиты на размер исходного кода (до 50k символов) и объём консольного вывода (до 100k символов).

Курсовые уроки и свободный компилятор

Платформа предоставляет два сценария работы: - Режим пошаговых уроков: изучение теории, написание кода под условия задачи, запуск тестов, сдача на проверку и фиксация прогресса; - Режим /free: свободная интерактивная песочница для экспериментов с любым Python-кодом без ограничений учебной программы.

Персистентность, тестирование и деплой

Состояние уроков и введённый код сохраняются в localStorage браузера. Сервис протестирован через Vitest и сквозные тесты Playwright E2E.

Продакшн-образ Docker объединяет React/Vite фронтенд и эндпоинты FastAPI под управлением Caddy с поддержкой единого входа (SSO) из мастер-платформы Student Platform.