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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

Supported by

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