Skip to content
/ examples Public

Example applications and libraries cross-compiled to WebAssembly for Faasm.

License

Notifications You must be signed in to change notification settings

faasm/examples

 
 

Repository files navigation

Example Applications for Faasm

This repository contains a list of applications and libraries that have been cross-compiled to WebAssembly for their use with Faasm.

WARNING: examples listed here have worked at some point in time. The fact that they are listed here does not mean that they still run, or that they are supported in any way.

List of examples

Project Name Language Notes
FFmpeg C, C++ Static library
Kernels C, C++ OpenMP, MPI
LAMMPS C++ MPI
libpng C Static library
ImageMagick C++ Needs libpng
LULESH C++ OpenMP
Tensorflow C++ Static library

Bumping C++, Python, or Faasm's version

This repository depends on Faasm's toolchain repos (C++, and Python) and the Faasm runtime. As a consequence, it is versioned with the versions of the previous.

If you want to upgrade the Python or C++ tag, you must update the submodule and the GHA file. If you want to update the Faasm tag, you must update the FAASM_VERSION file, and the GHA file. Then, re-build the container images with:

inv docker.build -c build -c run --nocache --push

Adding a new application

To add a new application, you first need to cross-compile it to WebAssembly. You can check the [tasks/]](./tasks) folder for examples of how we do it for existing applications. Most importantly, you will have to inidicate the right sysroot, and pass the environment variables that we read from faasmtools.

Once the application is cross-compiled, you must make it run with Faasm. The tests in GHA only test integration with the WAVM runtime in Faasm, but if you need to pick another one for a very specific reason, it can also be tested.

About

Example applications and libraries cross-compiled to WebAssembly for Faasm.

Resources

License

Stars

Watchers

Forks

Packages

No packages published