Brython 3.10 (Browser Python) er udgivet med implementering af programmeringssproget Python 3 til kørsel i webbrowseren, hvilket gør det muligt at bruge Python i stedet for JavaScript til at udvikle scripts til web. Projektkoden er skrevet i Python og distribueres under BSD-licensen.
Ved at tilslutte bibliotekerne brython.js og brython_stdlib.js kan webudvikleren bruge Python til at definere logikken for webstedet på klientsiden, hvilket giver mulighed for at anvende Python i stedet for JavaScript. Python-kode inkluderes på siderne med tagget med mime-typen "text/python". Det er tilladt at integrere kode direkte på siden såvel som at indlæse eksterne scripts (). Scriptet giver fuld adgang til DOM-elementer og -begivenheder. Ud over adgangen til Python-standardbiblioteket tilbydes der specialiserede biblioteker til interaktion med DOM og JavaScript-biblioteker såsom jQuery, D3, Highcharts og Raphael. Brug af CSS-frameworks som Bootstrap3, LESS og SASS understøttes.
Kørsel af Python-kode fra blokke <script> производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js предлагает для выполнения Python-кода в браузере скомпилированный в asm.js интерпретатор CPython, а Skulpt реализует интерпретатор на JavaScript).
Den reelle ydeevne af de fleste operationer i indlejrede Python-scripts på web-sider nærmer sig ydeevnen af CPython. Der opstår kun forsinkelse under kompileringstrinnet, men der gives mulighed for at indlæse forudkompileret JavaScript-kode, som anvendes til at fremskynde indlæsningen af standardbiblioteket (Brython leverer værktøjer til oprettelse af JavaScript-biblioteker baseret på Python-moduler).
Den nye version er bemærkelsesværdig for at sikre kompatibilitet med Python 3.10, herunder understøttelse af match/case operatorer til mønster matching. Den nye version introducerer også en indledende implementering af abstrakt syntaks-træ (AST, Abstract Syntax Tree) for Python, som kan bruges til at generere JavaScript-kode fra et universelt AST.
Kilde: opennet.ru
