О сайте

Сторонние библиотеки и vendoring

Как этот учебный workspace использует сторонние библиотеки, локальные vendor-файлы и CDN-зависимости.

## Сторонние библиотеки Эта платформа использует небольшое количество сторонних open-source библиотек для работы браузерных учебных инструментов. Часть файлов хранится локально и отдаётся как статические файлы этого сайта. Другие зависимости остаются загружаемыми с зафиксированных CDN URL, если vendoring добавил бы лишнюю нагрузку на поддержку или если сам runtime намеренно работает через сетевые пакеты. ## Локальные vendor-файлы Некоторые лёгкие или важные runtime-зависимости отдаются локально: подсветка кода, assets терминала, браузерная поддержка SQLite и runtimes для регулярных выражений. Такой подход уменьшает зависимость обычной загрузки страниц от внешних CDN и позволяет обновлять критичные UI/runtime части вместе с основным деплоем сайта. ## CDN-зависимости runtime Большие или чувствительные к собственному loader-у runtimes, включая Monaco Editor и Pyodide, могут по-прежнему загружаться с зафиксированных CDN URL. Отдельные JavaScript-библиотеки в онлайн IDE, например библиотеки для графиков или визуализации, являются sandbox-зависимостями, которые пользователь выбирает сам. Они выполняются в изолированном sandbox origin, а не в основном origin сайта с авторизацией. Там, где браузерный API загрузки это поддерживает, CDN-скрипты используют Subresource Integrity. Некоторые worker API не имеют native SRI; для таких случаев используются зафиксированные версии, CSP allowlist, изоляция sandbox, обработка runtime-ошибок и smoke-тесты. ## Лицензии и права Сторонние библиотеки, фреймворки, торговые марки и логотипы остаются собственностью их авторов и maintainers. Vendor-файлы лицензий и notices хранятся рядом с соответствующими статическими assets там, где это требуется. Эта страница является понятным кратким описанием, но не заменяет оригинальные тексты лицензий. ## Основные сторонние библиотеки Платформа использует сторонние open-source проекты, включая: - Monaco Editor — браузерный редактор кода. - Pyodide — Python runtime для WebAssembly. - Xterm.js — компонент UI терминала. - Prism — подсветка синтаксиса. - sql.js — SQLite, скомпилированный в WebAssembly. - XRegExp, PCRE2 WASM и Oniguruma — движки регулярных выражений. - D3, Chart.js, p5.js, Three.js, Lodash, Papa Parse, Marked, js-yaml и похожие библиотеки — необязательные sandbox/runtime зависимости, которые выбирает пользователь. Файлы лицензий и notices для vendored библиотек предоставляются рядом с соответствующими статическими assets там, где это требуется.