Випуск Brython 3.11, реалізації мови Python для web-браузерів

Подано реліз проекту Brython 3.11 (Browser Python) з реалізацією мови програмування Python 3 для виконання на стороні web-браузера, що дозволяє використовувати Python замість JavaScript для розробки скриптів для Web. Код проекту написаний мовою Python та поширюється під ліцензією BSD.

Підключивши бібліотеки brython.js та brython_stdlib.js, web-розробник може використовувати мову Python для визначення логіки роботи сайту на стороні клієнта, використовуючи Python замість JavaScript. Для включення Python-коду на сторінки використовується тег с mime-типом «text/python». Допускается как встраивание кода на страницу, так и загрузка внешних скриптов (). Из скрипта предоставляется полный доступ к элементам и событиям DOM. Помимо доступа к стандартной библиотеке Python предлагаются специализированные библиотеки для взаимодействия с DOM и JavaScript-библиотеками, такими как jQuery, D3, Highcharts и Raphael. Поддерживается использование CSS-фреймворков Bootstrap3, LESS и SASS.

Виконання Python-коду з блоків производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js предлагает для выполнения Python-кода в браузере скомпилированный в asm.js интерпретатор CPython, а Skulpt реализует интерпретатор на JavaScript).

Підсумкова продуктивність більшості операцій у Python-сценарах, що вбудовуються в web-сторінки, близька до продуктивності CPython. Затримка виникає лише на етапі компіляції, але для її усунення надається можливість завантаження заздалегідь скомпілованого в JavaScript коду, яка застосовується для прискорення завантаження стандартної бібліотеки (Brython надає інструментарій для створення JavaScript-бібліотек на основі модулів Python).

Новий випуск примітний забезпеченням сумісності з CPython 3.11 та реалізацією більшої частини нових можливостей цієї гілки, включаючи підтримку груп винятків та виразу «except*», деталізації проблемних виразів у діагностичних повідомленнях та прикріплення приміток до винятків.

Джерело: opennet.ru

Додати коментар або відгук