Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Development  





2 Design  





3 Components  





4 pyjs Desktop  





5 References  





6 External links  














Pyjs






العربية
فارسی
Српски / srpski
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 




In other projects  



Wikimedia Commons
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


Pyjs
Original author(s)James Tauber, Google
Developer(s)Luke Leighton, Anthony C Risinger, Kees Bos
Initial releaseMarch 2007; 17 years ago (2007-03)
Stable release

0.8.1a[1] Edit this on Wikidata / 9 May 2012; 12 years ago (9 May 2012)

Repository
Written inPython, JavaScript
Operating systemWindows, OS X, Linux
Available inPython
TypeAjax framework, Desktop and Web Widget toolkit, Compiler, Widget set
LicenseApache License 2.0
Websitepyjs.org

Pyjs (formerly Pyjamas before May 2012[2]), is a rich web application framework for developing client-side web and desktop applications in Python. The resulting applications can be run in a web browser or as standalone desktop applications.

It contains a stand-alone Python-to-JavaScript compiler, an Ajax framework and widget toolkit, and through use of these components, developers can write comprehensive applications, to run in all major web browsers, without writing any JavaScript. Pyjs is a port of Google Web Toolkit (GWT) from JavatoPython.[3]

Development[edit]

Using pyjs, developers can write web applicationsinPython instead of JavaScript. The application is compiled to JavaScript. Also included is an Ajax library and widget set[4] that provides access to the Document Object Model (DOM) of modern JavaScript-capable web browsers. The Ajax library and the widget set library are a hybrid mix of Python and JavaScript. Just as with Google Web Toolkit, pyjs is not its libraries, and neither is it just another Ajax framework. Ajax frameworks are strictly limited to providing pre-prepared specific functionality, written almost exclusively in tailor-made JavaScript. Both GWT and pyjs, being JavaScript compilers, allow the developer to work in the language with which they are familiar (Java or Python, respectively), to write their own custom widgets, either entirely from scratch or based on the existing available widgets, yet still target the full range of modern browsers. So, far from presenting web developers with a ready-made Ajax framework, pyjs gives you the freedom to create your own.

Design[edit]

The pyjs compiler is written in the programming language Python, and uses it to compile its input into JavaScript, walking the abstract syntax tree of the program being compiled. Although the compiler is stand-alone, the primary use of pyjs is for web development, so there is additional infrastructure for building web applications.

The DOM.py[5] model library is an abstraction layer — a thin layer of Python on top of JavaScript code snippets — use of which provides access to the full Document Object Model of the target browser platform. As with any compiler, the JavaScript snippets are treated as inline assembler.

Furthermore, on top of the DOM.py model library is an additional abstraction layer, ui.py,[6] which provides the most useful layer to web developers: a full suite of widgets with which desktop application developers will be familiar. At present, the list of available widgets is a mixture of the complete set of widgets that were available in Google Web Toolkit 1.2, along with a few more that have been forward-ported from GWT 1.5.

Components[edit]

The major Pyjs components include:

pyjs Python-to-JavaScript Compiler
Translates the programming language Python into JavaScript.
Python builtin and standard emulation library
JavaScript implementations of the commonly used modules, builtins and classes in the Python standard runtime library (such as strings, lists, dictionaries, tuples, sets, getattr, map, filter, range, etc.; basic exception handling, a basic datetime and a basic math module).
pyjs DOM library[5]
Modules for manipulating the browser DOM.
pyjs Web UI module[6]
A module for creating widgets as if the web browser was a desktop widget engine.
pyjs Desktop ports
Support for running pyjs apps as pure Python, under MSHTML (Trident), Gecko (XULRunner) or WebKit. Pyjs Desktop is conceptually close to GWT "Hosted" mode, except that the applications can be deployed live, under pyjs Desktop, rather than be used exclusively as a debugging tool.

pyjs Desktop[edit]

The widget set library[4] that comes with pyjs is so similar to PyQt and PyGTK that a port of pyjs was made to run pyjs applications on the desktop, called pyjs Desktop (formerly PyjamasDesktop[7] before May 2012 and originally hosted separately prior to version 0.6[8]). The project uses Webkit, XULRunnerorMSHTML as the underlying technology, and it is through these browser engines that pyjs manipulates the DOM model of the application. Together pyjs and pyjs Desktop allow writing cross-platform, cross-desktop, cross-browser and cross-widget applications that run on the web and on the desktop.[9][10]

References[edit]

  1. ^ "Release 0.8.1a". 9 May 2012. Retrieved 22 July 2018.
  • ^ Infrastructure, endpoint, process changes, clarification by Lex on pyjamas-dev mailing list (May 03, 2012)
  • ^ pyjs README
  • ^ a b The ui Module Class Hierarchy
  • ^ a b DOM module
  • ^ a b ui module
  • ^ PyjamasDesktop history, Python Wiki
  • ^ "Pyjamas Desktop".
  • ^ Pyjamas - Python Applications for Desktop and Web, Luke Kenneth Casson Leighton (August 30, 2008)
  • ^ Coding in Pyjamas: Apps for Desktop and the Web Luke Kenneth Casson Leighton (November 7, 2008)
  • External links[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=Pyjs&oldid=1221610100"

    Categories: 
    Free software programmed in Python
    JavaScript libraries
    Rich web application frameworks
    Software using the Apache license
    Web development software
    Widget toolkits
    Hidden categories: 
    Articles with short description
    Short description matches Wikidata
    Articles lacking in-text citations from April 2009
    All articles lacking in-text citations
    Articles with topics of unclear notability from January 2021
    All articles with topics of unclear notability
    Products articles with topics of unclear notability
    Articles lacking reliable references from January 2021
    All articles lacking reliable references
    Articles with multiple maintenance issues
     



    This page was last edited on 30 April 2024, at 22:49 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki