/wasm

WebAssembly playground

Primary LanguageStarlarkMIT LicenseMIT

WebAssembly Playground

Scripts to compile libraries to WebAssembly using Bazel.

To get (somewhat) reproducible results, run the builds in a Docker container. To get a shell within the container, run build the image and run it:

$ docker build -t wasm docker
$ docker run -it -v "${PWD}:/build" wasm

Then build targets as usual. To compile WebAssembly using the Emscripten toolchain, pass --cpu=wasm32. Pass -c opt for an optimised build.

Libraries

Build Label Version
//lib/aec 1.0.6 🔗
//lib/bison 3.8.2 🔗
//lib/blas 3.10.0 🔗
//lib/boost 1.80.0 🔗
//lib/bz2 1.0.8 🔗
//lib/ceres 2.1.0 🔗
//lib/cmark 0.30.2 🔗
//lib/cmarkgfm 0.29.0.gfm.6 🔗
//lib/curl 7.85.0 🔗
//lib/deflate 1.14 🔗
//lib/eigen 3.4.0 🔗
//lib/exiv2 0.27.5 🔗
//lib/expat 2.2.10 🔗
//lib/ffi 3.3 🔗
//lib/ffmpeg 6.0.1 🔗
//lib/fftw 3.3.10 🔗
//lib/flex 2.6.4 🔗
//lib/gcc 10.2.0 🔗 🔗
//lib/gdal 3.5.2 🔗 🔗
//lib/geos 3.11.0 🔗
//lib/geotiff 1.6.0 🔗
//lib/gflags 2.2.2 🔗
//lib/gif 5.2.1 🔗
//lib/glog 0.4.0 🔗
//lib/gmp 6.3.0 🔗 🔗 🔗 🔗
//lib/grass 8.2.0 🔗
//lib/hdf 4.2.15 🔗
//lib/hdf5 1.12.0 🔗 🔗
//lib/iconv 1.16 🔗
//lib/imath 3.1.5 🔗
//lib/jpegturbo 3.0.1 🔗
//lib/jq 1.6 🔗
//lib/lcms 2.12 🔗
//lib/lz4 1.9.3 🔗
//lib/lzma 5.4.5 🔗
//lib/lzo 2.10 🔗
//lib/m4 1.4.19 🔗
//lib/mpdecimal 2.5.1 🔗
//lib/mpfr 4.2.1 🔗 🔗 🔗 🔗
//lib/musl 1.2.3 🔗
//lib/nasm 2.16.01 🔗
//lib/ncurses 6.2 🔗
//lib/oniguruma 6.9.6 🔗
//lib/opencv 4.6.0 🔗
//lib/openexr 3.1.5 🔗
//lib/openjpeg 2.4.0 🔗
//lib/openssl 3.0.5 🔗
//lib/pano13 2.9.19 🔗
//lib/png 1.6.40 🔗
//lib/proj 8.0.1 🔗
//lib/protobuf 3.19.4 🔗
//lib/python 3.10.7 🔗
//lib/quirc 1.0.1 🔗
//lib/readline 8.0 🔗
//lib/sdl 2.24.0 🔗
//lib/sqlite 3.35.5 🔗
//lib/suitesparse 5.9.0 🔗
//lib/szip 2.1.1 🔗
//lib/tcl 8.6.11 🔗
//lib/tiff 4.2.0 🔗
//lib/tirpc 1.3.1 🔗
//lib/vigra 1.11.1 🔗
//lib/vpx 1.13.1 🔗
//lib/webp 1.3.2 🔗
//lib/x264 0.164.3161 🔗
//lib/x265 3.5 🔗
//lib/xml 2.9.10 🔗
//lib/xslt 1.1.34 🔗
//lib/yasm 1.3.0 🔗
//lib/z 1.3 🔗
//lib/zstd 1.5.0 🔗

Tools

Build Label Version
//tools/emscripten 3.1.47 🔗
//tools/llvm 17.0.2 🔗

Nix Shell

To get a Clang toolchain in a Nix environment, run nix-shell, it will pick up the shell.nix file in the repo. This will set $CC to clang, along with any necessary standard library paths.