Skip to content

Compile cysqlite to WebAssembly and create Pyodide-compatible wheel#79

Merged
simonw merged 2 commits intomainfrom
claude/cysqlite-wasm-wheel-FiL0x
Feb 10, 2026
Merged

Compile cysqlite to WebAssembly and create Pyodide-compatible wheel#79
simonw merged 2 commits intomainfrom
claude/cysqlite-wasm-wheel-FiL0x

Conversation

@simonw
Copy link
Copy Markdown
Owner

@simonw simonw commented Feb 10, 2026

Run “uvx rodney –help”

Clone https://github.com/coleifer/cysqlite to /tmp

Figure out how to compiled cysqlite to WebAssembly and bundle it in a wheel file that Pyodide can load and use

Test the wheel by building a demo.html page that loads Pyodide from a CDN and loads the wheel (the page being served by python -m http.server) and runs through as much of the Python test suite as possible - load that Python test code from the raw GitHub CDN using the correct paths figured out from the GitHub checkout

Make the demo page useful and informative

Test that it all works using rodney

Cross-compile cysqlite v0.1.4 (Cython SQLite3 binding) to WebAssembly
using Emscripten 3.1.46 via pyodide-build 0.25.1. The resulting wheel
runs in Pyodide 0.25.x (Python 3.11) in the browser. All 115 upstream
tests pass (TestThreading skipped as Pyodide is single-threaded).

Includes build.sh script, demo.html test runner, and the pre-built wheel.

https://claude.ai/code/session_015BFzELMSQVMZPD5psNzuqF

Cross-compile cysqlite v0.1.4 (Cython SQLite3 binding) to WebAssembly
using Emscripten 3.1.46 via pyodide-build 0.25.1. The resulting wheel
runs in Pyodide 0.25.x (Python 3.11) in the browser. All 115 upstream
tests pass (TestThreading skipped as Pyodide is single-threaded).

Includes build.sh script, demo.html test runner, and the pre-built wheel.

https://claude.ai/code/session_015BFzELMSQVMZPD5psNzuqF
Exclude the Pyodide cross-build environment directory created by
pyodide-build during the cysqlite WASM wheel compilation.

https://claude.ai/code/session_015BFzELMSQVMZPD5psNzuqF
@simonw simonw merged commit 13df7f1 into main Feb 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants