What?
Enable conda install <package> in the browser to install pure Python wheels from PyPI, extending cx-wasm beyond emscripten-forge packages. This uses the conda-pypi plugin and the upcoming repodata v3 format.
Why?
emscripten-forge has a limited package set. Many pure Python packages (requests, click, etc.) are available as noarch wheels on PyPI. The conda-pypi-test channel indexes ~500K pure Python wheels. With v3 repodata support, the solver can resolve these alongside conda packages.
User impact
%conda install requests works in the browser without needing the package on emscripten-forge
- Massive expansion of available packages in JupyterLite notebooks
Goals
Tasks
This epic is blocked by:
References
- cx-wasm already uses
rattler_conda_types v0.43.5 which supports v3.whl deserialization
- Relevant CEPs: CEP 111, CEP 145, CEP 146
- See PLAN.md §6 "Future: PyPI wheel support via conda-pypi" for full analysis
What?
Enable
conda install <package>in the browser to install pure Python wheels from PyPI, extending cx-wasm beyond emscripten-forge packages. This uses the conda-pypi plugin and the upcoming repodata v3 format.Why?
emscripten-forge has a limited package set. Many pure Python packages (requests, click, etc.) are available as
noarchwheels on PyPI. The conda-pypi-test channel indexes ~500K pure Python wheels. With v3 repodata support, the solver can resolve these alongside conda packages.User impact
%conda install requestsworks in the browser without needing the package on emscripten-forgeGoals
v3.whlrepodata records%conda install <pypi-package>in JupyterLiteTasks
v3.whlrecords insharded.rs(parse_repodata_textcurrently ignoresexperimental_v3)WhlPackageRecordentries (pointing tofiles.pythonhosted.org)repodata.json— need.zstcompression or subsetting)conda-pypiextractor andinstallerlibrary in the JupyterLite environmentpost_commandhooks in WASM (subprocess-dependent, would cause confusing errors)This epic is blocked by:
References
rattler_conda_typesv0.43.5 which supportsv3.whldeserialization