wasm-micro-runtime/samples
Wenyong Huang 16a4d71b34
Implement GC (Garbage Collection) feature for interpreter, AOT and LLVM-JIT (#3125)
Implement the GC (Garbage Collection) feature for interpreter mode,
AOT mode and LLVM-JIT mode, and support most features of the latest
spec proposal, and also enable the stringref feature.

Use `cmake -DWAMR_BUILD_GC=1/0` to enable/disable the feature,
and `wamrc --enable-gc` to generate the AOT file with GC supported.

And update the AOT file version from 2 to 3 since there are many AOT
ABI breaks, including the changes of AOT file format, the changes of
AOT module/memory instance layouts, the AOT runtime APIs for the
AOT code to invoke and so on.
2024-02-06 20:47:11 +08:00
..
basic Forward log and log level to custom bh_log callback (#3070) 2024-01-24 13:05:07 +08:00
bh-atomic Fix windows link error and clear windows warnings (#2463) 2023-08-14 19:04:49 +08:00
file Implement GC (Garbage Collection) feature for interpreter, AOT and LLVM-JIT (#3125) 2024-02-06 20:47:11 +08:00
gui Corrects Zephyr include files for current versions of Zephyr (#2881) 2023-12-08 17:16:16 +08:00
inst-context Enable MASM automatically in runtime_lib.cmake (#2634) 2023-10-12 20:42:25 +08:00
inst-context-threads Enable MASM automatically in runtime_lib.cmake (#2634) 2023-10-12 20:42:25 +08:00
littlevgl Corrects Zephyr include files for current versions of Zephyr (#2881) 2023-12-08 17:16:16 +08:00
mem-allocator Fix windows link error and clear windows warnings (#2463) 2023-08-14 19:04:49 +08:00
multi-module Implement GC (Garbage Collection) feature for interpreter, AOT and LLVM-JIT (#3125) 2024-02-06 20:47:11 +08:00
multi-thread Use shared memory lock for threads generated from same module (#1960) 2023-02-16 11:54:19 +08:00
native-lib Fix download link for wasi-sdk (#3077) 2024-01-24 13:42:45 +08:00
ref-types Enable MASM automatically in runtime_lib.cmake (#2634) 2023-10-12 20:42:25 +08:00
sgx-ra fix(sgx-ra): Fix building when enclave is built without librats ahead (#2968) 2024-01-02 16:32:16 +08:00
shared-module Build samples in debug mode (#3019) 2024-01-16 09:36:05 +08:00
simple Build samples in debug mode (#3019) 2024-01-16 09:36:05 +08:00
socket-api Fix download link for wasi-sdk (#3077) 2024-01-24 13:42:45 +08:00
spawn-thread samples/spawn-thread: Tweak to expose a bug (#2888) 2023-12-08 18:35:40 +08:00
terminate examples/terminate: Use wasm_runtime_spawn_exec_env as well (#3049) 2024-01-18 20:44:09 +08:00
wasi-threads Avoid unused thread_id warning and recompile multi-module sample (#3033) 2024-01-17 08:06:02 +08:00
wasm-c-api Implement GC (Garbage Collection) feature for interpreter, AOT and LLVM-JIT (#3125) 2024-02-06 20:47:11 +08:00
wasm-c-api-imports Refine AOT/JIT code call wasm-c-api import process (#2982) 2024-01-10 18:37:02 +08:00
workload Build more benchmarks in workload XNNPACK (#2417) 2023-08-03 08:39:22 +08:00
README.md Update documents (#2100) 2023-04-03 15:54:44 +08:00

Samples

  • basic: Demonstrating how to use runtime exposed API's to call WASM functions, how to register native functions and call them, and how to call WASM function from native function.
  • simple: The runtime is integrated with most of the WAMR APP libraries, and a few WASM applications are provided for testing the WAMR APP API set. It uses built-in libc and executes apps in interpreter mode by default.
  • file: Demonstrating the supported file interaction API of WASI. This sample can also demonstrate the SGX IPFS (Intel Protected File System), enabling an enclave to seal and unseal data at rest.
  • littlevgl: Demonstrating the graphic user interface application usage on WAMR. The whole LVGL 2D user graphic library and the UI application are built into WASM application. It uses WASI libc and executes apps in AOT mode by default.
  • gui: Move the LVGL library into the runtime and define a WASM application interface by wrapping the littlevgl API. It uses WASI libc and executes apps in interpreter mode by default.
  • multi-thread: Demonstrating how to run wasm application which creates multiple threads to execute wasm functions concurrently, and uses mutex/cond by calling pthread related API's.
  • spawn-thread: Demonstrating how to execute wasm functions of the same wasm application concurrently, in threads created by host embedder or runtime, but not the wasm application itself.
  • wasi-threads: Demonstrating how to run wasm application which creates multiple threads to execute wasm functions concurrently based on lib wasi-threads.
  • multi-module: Demonstrating the multiple modules as dependencies feature which implements the load-time dynamic linking.
  • ref-types: Demonstrating how to call wasm functions with argument of externref type introduced by reference types proposal.
  • wasm-c-api: Demonstrating how to run some samples from wasm-c-api proposal and showing the supported API's.
  • socket-api: Demonstrating how to run wasm tcp server and tcp client applications, and how they communicate with each other.
  • native-lib: Demonstrating how to write required interfaces in native library, build it into a shared library and register the shared library to iwasm.
  • sgx-ra: Demonstrating how to execute Remote Attestation on SGX with librats, which enables mutual attestation with other runtimes or other entities that support librats to ensure that each is running within the TEE.
  • workload: Demonstrating how to build and run some complex workloads, e.g. tensorflow-lite, XNNPACK, wasm-av1, meshoptimizer and bwa.