Skip to main content

WebAssembly build tool for CPython C extensions

Project description

wasmpy-build

This tool can compile CPython C extension files, such as the ones created by Cython, to WebAssembly so that the extensions are platform independent.

This project contains modified CPython header files as well as a build script to ease the creation of .wasm extension files.

Currently this project only supports CPython 3.8, 3.9, 3.10 and 3.11 but I'm hoping to add support for older and future versions.

The project will automatically download wasi-sdk on first use.

Installation

Install from pip

pip install wasmpy-build

or build from source

git clone --recurse-submodules https://github.com/olivi-r/wasmpy-build
cd wasmpy-build
pip install patch
python patch_headers.py
python -m pip install .

Usage

Pass the file with any extra arguments to the console scripts:

C

wasmpy-build my_file.c -o my_file.wasm

C++

wasmpy-build++ my_file.cpp -o my_file.wasm

Project details


Download files

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

Source Distribution

wasmpy-build-0.4.0.tar.gz (801.5 kB view details)

Uploaded Source

Built Distribution

wasmpy_build-0.4.0-py3-none-any.whl (1.0 MB view details)

Uploaded Python 3

File details

Details for the file wasmpy-build-0.4.0.tar.gz.

File metadata

  • Download URL: wasmpy-build-0.4.0.tar.gz
  • Upload date:
  • Size: 801.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for wasmpy-build-0.4.0.tar.gz
Algorithm Hash digest
SHA256 06b9ca545e924264970d7559fddda91cc4699785c8d5a5d02ebd0cc7e3173526
MD5 093fbd966ef780f725b982883772ab98
BLAKE2b-256 82ce45a4c5a86c8a30daba48459c87e5413bddb7e1b3f45d3781582609938dd3

See more details on using hashes here.

File details

Details for the file wasmpy_build-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: wasmpy_build-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for wasmpy_build-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c65d4c4215dcee7159768022551b23e6a25796dfee7dd503bd986d1730c3fb11
MD5 a83e90cbaa9d54fcc703e141ed5a21c0
BLAKE2b-256 3a69d83e0fefa36f923e32dd0e8a0453ebfaa90b64116896c6b1fb3747f006ab

See more details on using hashes here.

Supported by

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