Pyjs
Originalförfattare | James Tauber, Google |
---|---|
Utvecklare | Luke Leighton, Anthony C Risinger, Kees Bos |
Initial release | mars 2007 |
Stabil frisättning | |
Förvar | |
Skrivet i | Python , JavaScript |
Operativ system | Windows , OS X , Linux |
Tillgänglig i | Pytonorm |
Typ | Ajax ramverk , verktygslåda för skrivbord och webbwidget , kompilator , widgetuppsättning |
Licens | Apache-licens 2.0 |
Hemsida |
Pyjs (tidigare Pyjamas före maj 2012), är ett rikt ramverk för webbapplikationer för att utveckla webb- och skrivbordsapplikationer på klientsidan i Python . De resulterande programmen kan köras i en webbläsare eller som fristående skrivbordsapplikationer .
Den innehåller en fristående Python -till- JavaScript- kompilator, ett Ajax-ramverk och widget-verktygssats , och genom att använda dessa komponenter kan utvecklare skriva omfattande applikationer, för att köras i alla större webbläsare, utan att skriva något JavaScript. Pyjs är en port av Google Web Toolkit (GWT) från Java till Python .
Utveckling
Med pyjs kan utvecklare skriva webbapplikationer i Python istället för JavaScript . Applikationen är kompilerad till JavaScript. Dessutom ingår ett Ajax-bibliotek och widgetuppsättning som ger tillgång till Document Object Model (DOM) för moderna JavaScript-kompatibla webbläsare. Ajax-biblioteket och widgetuppsättningsbiblioteket är en hybridblandning av Python och JavaScript. Precis som med Google Web Toolkit är pyjs inte dess bibliotek, och det är inte heller bara ett Ajax-ramverk. Ajax ramverk är strikt begränsade till att tillhandahålla förberedd specifik funktionalitet, skriven nästan uteslutande i skräddarsydd JavaScript. Både GWT och pyjs, som är JavaScript-kompilatorer, tillåter utvecklaren att arbeta på det språk som de är bekanta med (Java eller Python, respektive), för att skriva sina egna anpassade widgets, antingen helt från början eller baserat på de befintliga tillgängliga widgetarna, men ändå fortfarande rikta in sig på hela utbudet av moderna webbläsare. Så långt ifrån att presentera webbutvecklare med ett fullgjort Ajax-ramverk, ger pyjs dig friheten att utveckla din egen.
Design
pyjs-kompilatorn är skriven i programmeringsspråket Python och använder den för att kompilera indata till JavaScript, genom att gå igenom det abstrakta syntaxträdet för programmet som kompileras. Även om kompilatorn är fristående, är den primära användningen av pyjs för webbutveckling, så det finns ytterligare infrastruktur för att bygga webbapplikationer.
DOM.py-modellbiblioteket är ett abstraktionslager - ett tunt lager av Python ovanpå JavaScript-kodsnuttar - vars användning ger tillgång till den fullständiga dokumentobjektmodellen för målwebbläsarplattformen. Som med alla kompilatorer behandlas JavaScript-snuttarna som inline assembler .
Ovanpå modellbiblioteket DOM.py finns dessutom ett extra abstraktionslager, ui.py, som tillhandahåller det mest användbara lagret för webbutvecklare: en komplett uppsättning widgets som utvecklare av skrivbordsapplikationer kommer att vara bekanta med. För närvarande är listan över tillgängliga widgets en blandning av den kompletta uppsättningen widgets som var tillgängliga i Google Web Toolkit 1.2, tillsammans med några fler som har vidareporterats från GWT 1.5.
Komponenter
De viktigaste Pyjs-komponenterna inkluderar:
- pyjs Python-till-JavaScript-kompilator
- Översätter programmeringsspråket Python till JavaScript.
- Python inbyggt och standardemuleringsbibliotek
- JavaScript-implementeringar av de vanligast använda modulerna, inbyggda och klasserna i Pythons standard runtime-bibliotek (såsom strängar, listor, ordböcker, tupler, uppsättningar, getattr, karta, filter, intervall, etc.; grundläggande undantagshantering , en grundläggande datetime och en grundläggande matematikmodul).
- pyjs DOM-bibliotek
- Moduler för att manipulera webbläsarens DOM .
- pyjs Web UI-modul
- En modul för att skapa widgets som om webbläsaren vore en widgetmotor för skrivbordet .
- pyjs Desktop-portar
- Stöd för att köra pyjs-appar som ren Python, under MSHTML (Trident), Gecko ( XULRunner ) eller WebKit . Pyjs Desktop är konceptuellt nära GWT "Hosted"-läge, förutom att applikationerna kan distribueras live, under pyjs Desktop, snarare än att endast användas som ett felsökningsverktyg.
pyjs skrivbord
Widgetuppsättningsbiblioteket som följer med pyjs är så likt PyQt och PyGTK att en port av pyjs skapades för att köra pyjs-applikationer på skrivbordet, kallad pyjs Desktop (tidigare PyjamasDesktop före maj 2012 och ursprungligen värd separat före version 0.6). Projektet använder Webkit , XULRunner eller MSHTML som den underliggande tekniken, och det är genom dessa webbläsarmotorer som pyjs manipulerar DOM-modellen för applikationen. Tillsammans tillåter pyjs och pyjs Desktop att skriva applikationer för flera plattformar, över skrivbord, över webbläsare och widgetprogram som körs på webben och på skrivbordet.