Posts by Thorsten Beier
Mixed R and Python workflows in the browser with Emscripten-Forge
- 2026-10-07
Programming languages like R or Python have their own package management systems, which are typically language-specific. Native extensions often came as an afterthought, by allowing the platform-specific binaries to be bundled within a package. However, this model limits reuse and shared binary dependencies across packages from different ecosystems.
Major updates
- 2025-04-30
When emscripten-forge started, packages where build hosted on a quetz packge server. Now we moved to prefix.dev
Emscripten is now a proper package
- 2024-05-24
So far, the emscripten package was a bit of a hack. It relied on a text file ~.emsdkdir in the home directory which contained the directory of the emscripten installation. This was not very nice, because it was hard to build packages for several emscripten versions.
Rust/PyO3 Support
- 2024-05-10
Finally, we have added support for Rust/PyO3/maturin packages. This allows to build packages like * cryptography, pydantic-core and pycrdt.
Local builds with pixi
- 2024-05-10
Setting up a local build environment for emscripten-forge used to be a very complicated process with many dependencies and many steps. But with the usage of pixi this has become trivial!
Goodby boa, welcome rattler-build
- 2024-05-10
When emscripten-forge was started, we relied on https://github.com/mamba-org/boa which is a conda-build like tool but
using more of mamba then conda.
This was always a bit brittle and we had to maintain a fork of boa to make it work with emscripten-wasm32.
Testing did not work at all, because test dependencies could only be specified for the target_platform and not for the host_platform, ie
only for emscripten-wasm32 and not for linux-64 (or any other host platform).
This means there was no sane way to install the “emulators” to run the wasm code on the host platform.
Also the error messages were not very helpful and the code was hard to understand.