Pyodide is a Python distribution for the browser and Node.js based on WebAssembly
Go to file
Michael Droettboom b5e4b5e322 Don't use a fallback cache. Why was that a good idea? 2018-07-10 09:30:11 -04:00
.circleci Don't use a fallback cache. Why was that a good idea? 2018-07-10 09:30:11 -04:00
benchmark Add testing with Chrome 2018-07-09 15:09:49 -04:00
cpython Simplify Makefiles. Support parallel compilation. 2018-05-16 13:06:44 -04:00
docs Add destroy method to remove references to Python objects 2018-06-24 12:29:46 -04:00
emsdk Add compiler patch for async module loading 2018-06-23 08:24:21 -04:00
packages Fix relative path 2018-06-22 16:52:55 -04:00
six Add documentation to new build tools. 2018-06-22 10:22:00 -04:00
src Update emsdk cache version 2018-07-10 09:23:15 -04:00
test Handle catching Javascript exceptions in a unified way 2018-07-09 20:59:03 -04:00
tools Turn on `--use-preload-plugins` 2018-06-23 08:28:34 -04:00
.clang-format Add linting 2018-06-14 14:19:08 -04:00
.editorconfig MVP of a proper packaging system 2018-06-20 14:54:47 -04:00
.gitignore MVP of a proper packaging system 2018-06-20 14:54:47 -04:00
CHANGELOG.md Add some community and contributing guidelines 2018-06-07 15:43:04 -04:00
CODE-OF-CONDUCT.md Add some community and contributing guidelines 2018-06-07 15:43:04 -04:00
CONTRIBUTING.md Add linting 2018-06-14 14:19:08 -04:00
LICENSE
Makefile Fix webserver 2018-07-09 17:15:04 -04:00
Makefile.envs Restore HOSTPYTHON variable 2018-06-20 17:10:06 -04:00
README.md More refinement of docs 2018-06-22 14:54:59 -04:00
remove_modules.txt Lots of pandas fixes: 2018-04-24 19:29:54 -04:00

README.md

Pyodide

Build Status

The Python scientific stack, compiled to WebAssembly.

It provides transparent conversion of objects between Javascript and Python. When inside a browser, this means Python has full access to the Web APIs.

While closely related to the iodide project, Pyodide may be used standalone in any context where you want to run Python inside a web browser.

See the demo

Building

These instructions were tested on Linux. OSX should be mostly the same.

Make sure the prerequisites for emsdk are installed. Pyodide will build a custom, patched version of emsdk, so there is no need to build it yourself prior.

Additional build prerequisites are:

  • A working native compiler toolchain, enough to build CPython.
  • A native Python 3.6 or later to run the build scripts.
  • PyYAML
  • lessc to compile less to css.
  • uglifyjs to minify Javascript builds.

make

Testing

Install the following dependencies into the default Python installation:

pip install pytest selenium

Install geckodriver somewhere on your PATH.

make test

Benchmarking

Install the same dependencies as for testing.

make benchmark

Linting

Python is linted with flake8. C and Javascript are linted with clang-format.

make lint