Pyodide is a Python distribution for the browser and Node.js based on WebAssembly
Go to file
Gyeongjae Choi 6900afdc5b
PKG Add opencv-python, ffmpeg and libwebp (#2305)
* Add opencv-python

* Update comment

* Add JPEG, PNG, WEBP, ZLIB support

* Add tests for image processing

* Add more core modules

* Disable opencl

* Replace lena with baboon and add more tests

* Add file system support

* Add ffmpeg

* Add more tests

* Disable pthread in ffmpeg

* Disable canonical input processing mode in node test

* Update changelog

* Remove import test

* Allow more time in the first test

* Split out libwebp

* Fix node test

* Use a seperate CI job for opencv-python

* Fix generator

* Update changelog

* Remove protobuf package

* Try to fix CI workspace conflict

* Fix CI

* Use another CI job for generating unified packages.json

* Try to fix CI

* Fix CI again

* Disable verbose build

* Prevent from building opencv-python twice

* Persist only build artifacts

* Sepearate Cmake args into a script

* Try to reuse build packages job

* Fix CI

* Fix typo

* Fix merge conflict

* Use large resource class for package build

* Do not upload unwanted artifacts

* Do not upload unwanted artifacts
2022-04-19 09:24:47 +09:00
.circleci PKG Add opencv-python, ffmpeg and libwebp (#2305) 2022-04-19 09:24:47 +09:00
.github Rename 'build' directory to 'dist' (#2387) 2022-04-11 16:01:40 -07:00
benchmark Rename 'build' directory to 'dist' (#2387) 2022-04-11 16:01:40 -07:00
cpython New keyboard interrupt patch from upstream (#2332) 2022-04-08 08:35:58 -07:00
docs PKG Add opencv-python, ffmpeg and libwebp (#2305) 2022-04-19 09:24:47 +09:00
emsdk Update emscripten to 2.0.27 (#2295) 2022-03-23 23:31:13 -07:00
packages PKG Add opencv-python, ffmpeg and libwebp (#2305) 2022-04-19 09:24:47 +09:00
pyodide-build PKG Add opencv-python, ffmpeg and libwebp (#2305) 2022-04-19 09:24:47 +09:00
src Fix typo in CDN url (#2404) 2022-04-17 21:31:57 -07:00
tools ENH Remove hard coded paths in `pyodide_build` (#2351) 2022-04-09 13:41:10 -07:00
.clang-format chore: update pre-commit hooks (#2209) 2022-02-23 23:58:11 -05:00
.dockerignore Docker image with prebuilt pyodide (#787) 2020-11-08 21:05:38 +01:00
.editorconfig Fix #71: Upgrade to Python 3.7 2018-09-06 10:56:33 -04:00
.flake8 chore: enable the rest of flake8 & bugbear (#2216) 2022-02-27 12:39:53 -05:00
.gitignore Allow multiple loading of Pyodide instances (#2391) 2022-04-14 18:04:01 -07:00
.pre-commit-config.yaml v0.20.0 2022-04-09 13:44:32 -07:00
.prettierignore style: improve pre-commit (#2177) 2022-02-19 09:06:25 +01:00
.readthedocs.yml fix: better mypy coverage (#2339) 2022-04-01 21:58:54 +02:00
CODE-OF-CONDUCT.md MAINT Apply prettier to everything by default (#2095) 2022-01-10 13:47:59 -08:00
Dockerfile Dockerfile update for Python 3.10 (#2281) 2022-03-17 10:22:24 -07:00
Dockerfile-prebuilt Rename 'build' directory to 'dist' (#2387) 2022-04-11 16:01:40 -07:00
LICENSE Initial commit 2018-02-23 14:21:29 -05:00
Makefile Fix npm package (#2394) 2022-04-17 21:10:03 -07:00
Makefile.envs Allow multiple loading of Pyodide instances (#2391) 2022-04-14 18:04:01 -07:00
README.md DOCS Fix capitalization of package names in readme [skip ci] (#2068) 2021-12-26 12:46:03 -08:00
conftest.py PKG Add opencv-python, ffmpeg and libwebp (#2305) 2022-04-19 09:24:47 +09:00
lgtm.yml Apply lints suggested by lgtm.com (#1398) 2021-03-31 21:11:41 +02:00
pyodide_env.sh chore: more pre-commit checking (#2257) 2022-03-07 21:51:20 -08:00
pyproject.toml ENH Remove hard coded paths in `pyodide_build` (#2351) 2022-04-09 13:41:10 -07:00
repository-structure.md chore: more pre-commit checking (#2257) 2022-03-07 21:51:20 -08:00
requirements.txt ENH Remove hard coded paths in `pyodide_build` (#2351) 2022-04-09 13:41:10 -07:00
run_docker Update docker image (#2388) 2022-04-11 11:05:32 +09:00
setup.cfg v0.20.0 2022-04-09 13:44:32 -07:00

README.md

NPM Latest Release PyPI Latest Release Build Status Documentation Status

Pyodide is a Python distribution for the browser and Node.js based on WebAssembly.

What is Pyodide?

Pyodide is a port of CPython to WebAssembly/Emscripten.

Pyodide makes it possible to install and run Python packages in the browser with micropip. Any pure Python package with a wheel available on PyPi is supported. Many packages with C extensions have also been ported for use with Pyodide. These include many general-purpose packages such as regex, PyYAML, lxml and scientific Python packages including NumPy, pandas, SciPy, Matplotlib, and scikit-learn.

Pyodide comes with a robust Javascript ⟺ Python foreign function interface so that you can freely mix these two languages in your code with minimal friction. This includes full support for error handling (throw an error in one language, catch it in the other), async/await, and much more.

When used inside a browser, Python has full access to the Web APIs.

Try Pyodide (no installation needed)

Try Pyodide in a REPL directly in your browser. For further information, see the documentation.

Getting Started

Pyodide offers three different ways to get started depending on your needs and technical resources. These include:

  • Use a hosted distribution of Pyodide: see the Getting Started documentation.
  • Download a version of Pyodide from the releases page and serve it with a web server.
  • Build Pyodide from source
    • Build natively with make: primarily for Linux users who want to experiment or contribute back to the project.
    • Use a Docker image: recommended for Windows and macOS users and for Linux users who prefer a Debian-based Docker image with the dependencies already installed.

History

Pyodide was created in 2018 by Michael Droettboom at Mozilla as part of the Iodide project. Iodide is an experimental web-based notebook environment for literate scientific computing and communication.

Iodide is no longer maintained. If you want to use Pyodide in an interactive client-side notebook, see Pyodide notebook environments.

Contributing

Please view the contributing guide for tips on filing issues, making changes, and submitting pull requests. Pyodide is an independent and community-driven open-source project. The decision-making process is outlined in the Project governance.

Communication

License

Pyodide uses the Mozilla Public License Version 2.0.