blob: d0caafb5902144a22a765f1409afbf796033b081 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# `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`](./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/.
```
|