aboutsummaryrefslogtreecommitdiff

nanowasm, a tiny WebAssembly/Wasm interpreter

This project is still unfinished and is not meant for production use.

This project aims to provide the most minimal Wasm interpreter possible in strictly portable ISO C99. It can run one or more Wasm applications concurrently, without threading.

Features

  • Portable, ISO C99 implementation.
  • Asynchronous interface, allows to run multiple applications concurrently.
  • Suitable for resource-constrained devices.
  • Does not require dynamic memory allocations.

What nanowasm is not

As opposed to other interpreters, nanowasm prefers lower memory usage rather than run-time performance. Therefore, it should not be unfairly compared performance-wise against other interpreters.

How to build

Use the conventional process in CMake projects:

cmake -B <dir>
cmake --build <dir>

Examples

A minimal example is provided on test/main.c.

License

nanowasm, a tiny WebAssembly/Wasm interpreter
Copyright (C) 2023-2024  Xavier Del Campo Romero

This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at https://mozilla.org/MPL/2.0/.