This page will show tooltips if you mouseover a red table element. However, they work better in firefox than chrome.


Project name


Gist


Actively developed?


Can import?


Compatibility with CPython 2 or 3


Python stdlib?


Can call ECMAScript code?


Can work with the DOM?


Can access HTML5?


Mailing list


License


Interop with major JS libraries (jQuery, etc.)


Interactive Console Available?


Compilers: SourceMap? (meaningful error line numbers)


Notes
Brython Python 3 translator to ECMAScript. Python is recompiled on each pageload. Yes Yes Mostly compatible with Python 3.9 Most of the pure-python modules are available. C extension modules less so Yes, via browser.window Through the “browser” module "Yes via "html" module and others, EG local_storage.py" "Google Group" 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. "
  • Somewhat unpythonic use of <= for HTML
  • mandelbrot
  • Demos"
  • Fiddle Salad In-browser IDE that can translate Python to ECMAScript Yes ? ? ? Yes, via JS('ECMAScript') 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 "Google Group" GPLv3, but library code is Apache ? No? Possibly
    RapydScript II Python 2 translated to ECMAScript. Translation written in ECMAScript using UglifyJS2 Yes Yes, mostly ? Yes, probably Yes Yes ? "Google Group" Apache v2 ? No? Possibly "Blog"
    Rapydscript-ng A not-always-compatible fork of RapydScript Yes Yes Python 3 At least some Yes “Don’t remove this license” Yes Yes
    Skulpt Python 2 translator to ECMAScript. Python is recompiled on each pageload. Yes Some things Can use tuples as dictionary keys now. 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) "Google Group" MIT/PSFLv2 ? Yes? No need? Has been used in some online interactive Python tutorials
    pyjs Translate Python 2.[56] into ECMAScript, 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 "Google Group" Apache jQuery, perhaps more No? No? "
  • Drama 1
  • Drama 2"
  • PythonScript Translates a subset of Python 2.x (called PythonJS) to ECMAScript Yes No Subset - a lot of similarities "No, but has a "weblib"" "Yes. "Creating ECMAScript bindings is easy using JS function"" Yes, via jQuery Yes, via ECMAScript "Google Group" LGPLv2.1 jQuery Yes and No: the online editor can be used to interact with the underlying compiler smoothly "Being developed" The name is a little hard to google for. A young project.
    PJs Kinda like Pyjamas: Translate Python to ECMAScript Yes ? ? ? ? ? ? None? ? ? ? ? Emphasizes debuggability and readable ECMAScript
    Pystachio Incomplete project No? No downloads Early stage project
    PyvaScript Converts a Python-like language into ECMAScript Not so much: month old No Tiny Yes, quite well
  • Subject to undetected compile errors that most translators/interpreters would catch
  • Doesn't look that much like Python to me
  • Pyxc-pj Python to ECMAScript translator No Yes Some, maybe more Poorly documented, test cases don't work, requires Django 1.2?
    Pyjamas Translate Python 2.[56] into ECMAScript, and widget set for GWT-like desktop and browser No? Yes Much "
  • Drama 1
  • Drama 2"
  • Empythoned CPython 2.x compiled to ECMAScript using LLVM No Yes Quite good Appears at least close to complete ? Via empydom ? PSFL ? "Yes" 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 ECMAScript No Alpha-release, not ption-ready
    py2js #2 Converts Python into ECMAScript No Aims to do all of Python at some point
    py2js #3 Converts Python into ECMAScript No https://groups.google.com/forum/?fromgroups#!forum/py2js
    Pyjaco Converts Python into ECMAScript Dead URL? Much Yes, but requires some type conversions
  • Started as a fork of py2js #2
  • Had some copyright issues that needed to be resolved, but that's been taken care of now
  • Pythonium Ahead of Time Python to ECMAScript transpiler Project discontinued Yes Yes Subset of Python 3 No Yes, native Yes, native Yes, native https://groups.google.com/forum/#!forum/pythonium-users AGPL v3 Yes, native Aims for 100% compatibility with Python 3.x
    PythonJS Translates a subset of Python into ECMAScript. 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?"
    Pypy.js Pypy ported to ECMAScript Yes Yes 2.x Somewhat ? ? ? ? MIT? ? Yes ? Fast, but large: slow to load, fast once it gets loaded.
    Transcrypt Pip-installable Python 3.5 / 3.6 to JavasScript 5 / 6 compiler with optional static typechecking Yes Yes Compatible with Python 3.5 / 3.6 incl. locally controlled operator overloading Currently: time, re, itertools, math, cmath, turtle, logging, random, warnings, part of numpy (real and complex matrix algebra, 1D and 2D FFT) Directly, no conversions needed Directly, no conversions needed Directly, no conversions needed No, relies on stackoverflow tag [Transcrypt], GitHub QQuick/Transcrypt issues and twitter #TranscryptOrg Apache 2 Works directly with any ECMAScript library, no conversions needed, demos for major libs included No, since it is precompiled for speed rather than interpreted Multilevel sourcemaps allow debugging of minified or non-minified ECMAScript code directly from Python source code Small downloads: size of source + 20kB runtime, fast ECMAScript (a.o. call caching, a+=1 - a++, for...of...) integrated linter, minifier and static typechecker are part of download, python-style docs, professional support available
    Flexx A web development framework that appears to include a transpiler
    Jiphy Transpiles Python to ECMAScript and ECMAScript to Python, aiming for a 1-to-1 correspondence betweens lines Yes? Probably Purportedly does not require team buy-in. A single developer can use it.
    JavaScripthon Transpiles Python to ECMAScript Yes? 3.5 Considered Beta
    PyCow Python to Mootools ECMAScript
    Bulbul Python 3 to ECMAScript Considered experimental
    Rusthon Translates several languages, including Python and ECMAScript Very active?
    Batavia Python 3.x bytecode interpreter written in ECMAScript
    pyodide A CPython compiled to WASM, 1-1 mappings of fundamental types and proxies for more complex types to facilitate Python-ECMAScript interoperability, and a jupyter notebook-like facility that runs entirely in the browser Maybe Yes Looks like 3.x - at least b'abc' works It sounds like a lot of it works. Socket module does not because it's in a browser. Yes Yes ? ? ? ? Kind of - the output goes to the ECMAScript debugger console Probably not relevant Appears to have come a long way in a short time. Might take a while to load on a slow network connection?
    Anvil Drag and drop, Python in the browser converted to ECMAScript It appears so Yes Probably 2.x. At least their video did a print without parentheses They suggest as much Unknown, but there is paid support
    MicroPython MicroPython on WASM 3.x Some MIT
    RustPython Python written in Rust 3.x Some MIT





  • Row subtables