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/.
