Project name


Actively developed?

Can import?

Compatibility with CPython 2 or 3

Python stdlib?

Can call Javascript code?

Can work with the DOM?

Can access HTML5?

Mailing list


Interop with major JS libraries (jQuery, etc.)

Interactive Console Available?

Compilers: SourceMap? (meaningful error line numbers)

Brython Python 3 translator to JavaScript. Python is recompiled on each pageload. Yes Yes Python 3.x. Some esoteric things not implemented, no str.format, no generators. Some: datetime, hashlib, json, math, random, sys, dis, errno, itertools, keyword, os, string, sys, traceback Yes, via JSObject "Yes via ""html"" module and others, EG" " New BSD (3 clause) Yes Yes A lot of effort has been put so that Brython reports errors and exceptions as closely as possible to standard Python. Brython does not use SourceMap, but it does something similar. "
Fiddle Salad In-browser IDE that can translate Python to JavaScript Yes ? ? ? Yes, via JS('javascript') Yes ? None? Seems to rely on twitter GPLv3 ? No? ?
RapydScript Wrapper around PyvaScript No? Maybe deemphasized for RapydScript II now Yes, but imported into a single namespace ? ? Seamlessly Yes Google turned up nothing " GPLv3, but library code is Apache ? No? Possibly
RapydScript II Python 2 translated to JavaScript. Translation written in JavaScript using UglifyJS2 Yes Yes, mostly ? Yes, probably Yes Yes ? " Apache v2 ? No? Possibly "
Skulpt Python 2 translator to JavaScript. Python is recompiled on each pageload. Yes Some things Cannot use tuples as dictionary keys. Raising a custom exception breaks the parser. Sounds limited to specific modules Yes Yes, mostly. It's not comprehensive, but the most common operations are there Can at least get to a canvas (for turtle graphics) " MIT/PSFLv2 ? Yes? No need? Has been used in some online interactive Python tutorials
pyjs Translate Python 2.[56] into Javascript, and widget set for GWT-like desktop and browser Yes, or at least somewhat Yes Has --enable-strict to make the runtime more strictly conformant Much Yes, via JS Yes, via pyjamas.DOM No? Google didn't turn up much " Apache jQuery, perhaps more No? No? "
PythonScript Translates a subset of Python 2.x (called PythonJS) to JavaScript Yes No Subset - a lot of similarities "No, but has a ""weblib""" "Yes. ""Creating JavaScript bindings is easy using JS function""" Yes, via jQuery Yes, via JavaScript " LGPLv2.1 jQuery Yes and No: the online editor can be used to interact with the underlying compiler smoothly " The name is a little hard to google for. A young project.
PJs Kinda like Pyjamas: Translate Python to JavaScript Yes ? ? ? ? ? ? None? ? ? ? ? Emphasizes debuggability and readable JavaScript
Pystachio Incomplete project No? No downloads Early stage project
PyvaScript Converts a Python-like language into JavaScript Not so much: month old No Tiny Yes, quite well
Pyxc-pj Python to JavaScript translator No Yes Some, maybe more Poorly documented, test cases don't work, requires Django 1.2?
Pyjamas Translate Python 2.[56] into Javascript, and widget set for GWT-like desktop and browser No? Yes Much "
Empythoned CPython 2.x compiled to JavaScript using LLVM No Yes Quite good Appears at least close to complete ? Via empydom ? PSFL ? " No need Rather slow, but it's CPython. Only supports specific browsers, doesn't support konqueror.
py2js #1 Converts a small subset of Python to JavaScript No Alpha-release, not ption-ready
py2js #2 Converts Python into JavaScript No Aims to do all of Python at some point
py2js #3 Converts Python into JavaScript No!forum/py2js
Pyjaco Converts Python into JavaScript No Much Yes, but requires some type conversions
Pythonium Ahead of Time Python to JavaScript transpiler; Python 3 to Javascript translator written in Python that produces fast, portable javascript code Yes Yes Subset of Python 3 No Yes, native Yes, native Yes, native!forum/pythonium-users AGPL v3 Yes, native No Planned Aims for 100% compatibility with Python 3.x
PythonJS Translates a subset of Python into JavaScript. Python is recompiled on each pageload? Yes Yes, but different semantic, it imports an object from the module, or a dictionary of objects defined by __all__ variable in the module (it's not __all__ variable...) Apparently aiming for Python 2 and Python 3 compatibility Yes Yes N/A? Public Domain NodeJS, etc. "Faster than Brython?"

  • Row subtables