Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

pygodide

PyPI Python versions Downloads CI License: MIT

Docs Ruff

BETA: everything is subject to change

pygodide turns Pygame projects into browser apps using Pyodide with one command, no edits to your source code, and acheiving 2.4x more fps than pygbag.

Pronounced "pie-go-died"

If anything doesn't work out-of-the-box, pygodide offers tons of configuration options to adapt to your needs.

Documentation: https://elan456.github.io/pygodide/

Quick Start

While in your project's root directory, run the following commands:

Install

# Or add to your pyproject.toml and `uv sync`
pip install pygodide

Build

# Produces the web-hostable build/ directory
pygodide build .

# For an Itch.io zip file
pygodide build . --zip

Serve

# Hosts the build/ directory locally
pygodide serve .

Open http://localhost:8000 in your browser.

Troubleshooting

If anything went wrong, head over to the instructions page for more details and troubleshooting guidance.

Examples and Live Demos

Sample projects live under test_targets/ and a few of them are uploaded to itch.io.

Numpy particles demo: https://elan456.itch.io/pygodide-test-project
Audio demo: https://elan456.itch.io/pygodide-audio-demo
Arcade performance benchmark: https://elan456.itch.io/pygodide-performance-benchmark

Try one locally:

pygodide build test_targets/ball_bouncing
pygodide serve test_targets/ball_bouncing

Before every release, each target under test_targets/ is automatically verified using a headless browser to catch regressions. All features shown in the test targets are maintained as first-class features.

Contributing

git clone https://github.com/Elan456/pygodide.git
cd pygodide
uv sync --dev
uv run playwright install chromium
uv run pre-commit install --hook-type pre-commit --hook-type pre-push

The dev group includes pygodide[smoke], so Playwright is installed with uv sync --dev. You still need playwright install chromium once for browser binaries.

Run the same checks as CI:

uv run ruff format --check .
uv run ruff check .
uv run pytest

Smoke tests (from this repo)

uv run playwright install chromium   # once
uv run pygodide smoke /path/to/your/pygame/project
uv run pygodide smoke test_targets --suite

Be sure to read the AGENTS.md it's written for both human contributors as well as AI tools.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pygodide-0.1.0b9.tar.gz (410.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pygodide-0.1.0b9-py3-none-any.whl (55.6 kB view details)

Uploaded Python 3

File details

Details for the file pygodide-0.1.0b9.tar.gz.

File metadata

  • Download URL: pygodide-0.1.0b9.tar.gz
  • Upload date:
  • Size: 410.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pygodide-0.1.0b9.tar.gz
Algorithm Hash digest
SHA256 6b8ca7a6cd79f65a451cee4d6551170670daee51291f36ef27e0643b7ec019ca
MD5 7d8d47c873729c93bfec2a874f4136a8
BLAKE2b-256 f7e18eb0b4785acbdc140b07bfc7452aab69cc70be709d4523f5d9dce1461e59

See more details on using hashes here.

Provenance

The following attestation bundles were made for pygodide-0.1.0b9.tar.gz:

Publisher: publish.yml on Elan456/pygodide

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pygodide-0.1.0b9-py3-none-any.whl.

File metadata

  • Download URL: pygodide-0.1.0b9-py3-none-any.whl
  • Upload date:
  • Size: 55.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pygodide-0.1.0b9-py3-none-any.whl
Algorithm Hash digest
SHA256 ffcd579fd6e2c8dfa7315020ebac14be2583860725a665b792935b1d98ec38ee
MD5 dcbe5c2e12de0b9ae3dcac5df292c648
BLAKE2b-256 15f4ba9bccac1059017df79be9775d5c9febebf8d20b95674b8aab937186a1ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for pygodide-0.1.0b9-py3-none-any.whl:

Publisher: publish.yml on Elan456/pygodide

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page