tiered_support.md 21 KB

Tiered Support

Tier A

This tier is the highest level of support. Features and targets in this tier are fully supported, actively maintained, and regularly tested. Users can expect prompt assistance and comprehensive documentation for any issues or questions related to these features. Users can rely on Tier A features for production environments. Targets in this tier usually have been used in products.

Tier B

This tier represents a moderate level of support. Features and targets in this tier are generally supported and maintained, but may not receive the same level of attention as Tier A. While efforts are made to ensure stability, users may encounter occasional issues that are not immediately addressed. Documentation may be less comprehensive compared to Tier A. Users are encouraged to report any issues they encounter, but response times may vary.

Tier C

This tier indicates experimental features with foundational support levels. These implementations are typically optimized for specific platforms, running modes, or use cases, and may not receive active maintenance. Documentation tends to be minimal or require updates. Production deployment requires specialized expertise and careful evaluation, including establishing appropriate threat models and ensuring comprehensive understanding of the implementation scope. Users should be prepared to troubleshoot issues and handle ongoing maintenance independently, accepting full responsibility for any limitations or challenges that may arise.

[!NOTE]

  • actively maintained and fully supported. users can expect timely assistance, comprehensive documentation, and regular updates for any issues or questions related to these features.
  • regularly tested. means there are automated tests in CI that run on a regular basis to ensure the stability and functionality of these features.

Labels

Target refers to the specific hardware architecture or operating system that the runtime can be compiled for and run on.

Runtime Extensions are features that extend the runtime capabilities of the system beyond the core WebAssembly specification. These extensions may include optimizations, additional APIs, or other enhancements that improve performance, usability, or functionality.

Portability indicates the ability of the runtime to operate across different platforms or environments without requiring significant modifications. This includes compatibility with various operating systems, hardware architectures, and development frameworks.

TierA

Targets

Description
aarch64-unknown-nuttx-eabi
i386-pc-linux-gnu
x86_64-pc-linux-gnu
x86_64-apple-darwin
x86_64-none-linux-gnu

Features

Description Compilation Flags Labels
Linux Compatibility WAMR_BUILD_PLATFORM=linux Portability
AoT runtime WAMR_BUILD_AOT Running mode
Fast Interpreter WAMR_BUILD_FAST_INTERP Running mode
Classic Interpreter WAMR_BUILD_INTERP Running mode
AoT compilation (wamrc) WAMR_BUILD_WAMR_COMPILER Compiler
Bulk Memory WAMR_BUILD_BULK_MEMORY Wasm Proposal
Name section WAMR_BUILD_CUSTOM_NAME_SECTION Wasm Proposal
Extended Constant Expressions WAMR_BUILD_EXTENDED_CONST_EXPR Wasm Proposal
Non-trapping float-to-int ALWAYS ON. Can not be disabled Wasm Proposal
Import/Export of Mutable Globals ALWAYS ON. Can not be disabled Wasm Proposal
Multi-value ALWAYS ON. Can not be disabled Wasm Proposal
WASI LIBC WAMR_BUILD_LIBC_WASI Wasm Proposal
WASI threads WAMR_BUILD_LIB_WASI_THREADS Wasm Proposal
Custom sections WAMR_BUILD_LOAD_CUSTOM_SECTION Wasm Proposal
Memory64 WAMR_BUILD_MEMORY64 Wasm Proposal
Reference Types WAMR_BUILD_REF_TYPES Wasm Proposal
Threads WAMR_BUILD_SHARED_MEMORY Wasm Proposal
SIMD (128-bit) WAMR_BUILD_SIMD Wasm Proposal
AOT intrinsics WAMR_BUILD_AOT_INTRINSICS Runtime Extensions
AoT stack frame WAMR_BUILD_AOT_STACK_FRAME Runtime Extensions
Global heap pool WAMR_BUILD_GLOBAL_HEAP_POOL Runtime Extensions
Global heap size WAMR_BUILD_GLOBAL_HEAP_SIZE Runtime Extensions
Libc builtin WAMR_BUILD_LIBC_BUILTIN Runtime Extensions
Module instance context WAMR_BUILD_MODULE_INST_CONTEXT Runtime Extensions
Quick AOT/JIT entries WAMR_BUILD_QUICK_AOT_ENTRY Runtime Extensions
Shrunk memory WAMR_BUILD_SHRUNK_MEMORY Runtime Extensions
Thread manager WAMR_BUILD_THREAD_MGR Runtime Extensions
App entry WAMR_DISABLE_APP_ENTRY Runtime Extensions
hardware bound check WAMR_DISABLE_HW_BOUND_CHECK Runtime Extensions
stack hardware bound check WAMR_DISABLE_STACK_HW_BOUND_CHECK Runtime Extensions
Wakeup blocking operation WAMR_DISABLE_WAKEUP_BLOCKING_OP Runtime Extensions

TierB

Targets

Description
arc-unknown-none-elf
x86_64-pc-windows-msvc
mips-unknown-elf
mips64-unknown-elf

Features

Description Compilation Flags Labels
Darwin Compatibility WAMR_BUILD_PLATFORM=darwin Portability
ESP-IDF Compatibility WAMR_BUILD_PALTFORM=esp-idf Portability
Nuttx Compatibility WAMR_BUILD_PALTFORM=nuttx Portability
SGX Compatibility WAMR_BUILD_PALTFORM=linux-sgx Portability
Zephyr Compatibility WAMR_BUILD_PALTFORM=zephyr Portability
GC (Garbage Collection) WAMR_BUILD_GC Wasm Proposal
Stringref WAMR_BUILD_STRINGREF Wasm Proposal
Tail Calls WAMR_BUILD_TAIL_CALL Wasm Proposal
LLVM JIT WAMR_BUILD_JIT Running mode
Per Instance running mode ALWAYS ON. Can not be disabled Runtime Extensions
Maximum stack size for app threads WAMR_APP_THREAD_STACK_SIZE_MAX Runtime Extensions
Host defined logging WAMR_BH_LOG Runtime Extensions
Host defined vprintf WAMR_BH_vprintf Runtime Extensions
Allocation with usage tracking WAMR_BUILD_ALLOC_WITH_USAGE Runtime Extensions
Allocation with user data WAMR_BUILD_ALLOC_WITH_USER_DATA Runtime Extensions
Bulk-memory-opt WAMR_BUILD_BULK_MEMORY_OPT Runtime Extensions
Call-indirect-overlong WAMR_BUILD_CALL_INDIRECT_OVERLONG Runtime Extensions
Copy Call Stack WAMR_BUILD_COPY_CALL_STACK Runtime Extensions
Debug Interpreter WAMR_BUILD_DEBUG_INTERP Runtime Extensions
Dump call stack WAMR_BUILD_DUMP_CALL_STACK Runtime Extensions
Garbage Collection Heap Verify WAMR_BUILD_GC_HEAP_VERIFY Runtime Extensions
Native General Invocation WAMR_BUILD_INVOKE_NATIVE_GENERAL Runtime Extensions
Lazy JIT Compilation WAMR_BUILD_LAZY_JIT Runtime Extensions
Pthread WAMR_BUILD_LIB_PTHREAD Runtime Extensions
Pthread Semaphore Support WAMR_BUILD_LIB_PTHREAD_SEMAPHORE Runtime Extensions
Lime1 runtime WAMR_BUILD_LIME1 Runtime Extensions
Linux Performance Counters WAMR_BUILD_LINUX_PERF Runtime Extensions
Memory profiling WAMR_BUILD_MEMORY_PROFILING Runtime Extensions
Multi-module WAMR_BUILD_MULTI_MODULE Runtime Extensions
Perf profiling WAMR_BUILD_PERF_PROFILING Runtime Extensions
Shared heap WAMR_BUILD_SHARED_HEAP Runtime Extensions
Stack Guard Size WAMR_BUILD_STACK_GUARD_SIZE Runtime Extensions
WASI Ephemeral NN WAMR_BUILD_WASI_EPHEMERAL_NN Runtime Extensions
WASI-NN (neural network APIs) WAMR_BUILD_WASI_NN Runtime Extensions
External Delegate for WASI NN WAMR_BUILD_WASI_NN_ENABLE_EXTERNAL_DELEGATE Runtime Extensions
GPU Support for WASI NN WAMR_BUILD_WASI_NN_ENABLE_GPU Runtime Extensions
External Delegate Path for WASI NN WAMR_BUILD_WASI_NN_EXTERNAL_DELEGATE_PATH Runtime Extensions
LLAMA CPP for WASI NN WAMR_BUILD_WASI_NN_LLAMACPP Runtime Extensions
ONNX for WASI NN WAMR_BUILD_WASI_NN_ONNX Runtime Extensions
OpenVINO for WASI NN WAMR_BUILD_WASI_NN_OPENVINO Runtime Extensions
TFLite for WASI NN WAMR_BUILD_WASI_NN_TFLITE Runtime Extensions
Configurable bounds checks WAMR_CONFIGURABLE_BOUNDS_CHECKS Runtime Extensions
Write GS base WAMR_DISABLE_WRITE_GS_BASE Runtime Extensions

TierC

Targets

Description
aarch64-apple-ios
arm-none-eabi
i386-unknown-elf
i386-wrs-vxworks
riscv32-esp-elf
riscv32-unknown-elf
riscv64-unknown-elf
x86_64-linux-android
x86_64-linux-cosmo
x86_64-unknown-freebsd
x86_64-wrs-vxworks
xtensa-esp32-elf

Features

Description Compilation Flags Labels
AliOS compatibility WAMR_BUILD_PLATFORM=alios-things Portability
Android Compatibility WAMR_BUILD_PLATFORM=android Portability
Cosmo Compatibility WAMR_BUILD_PLATFORM=cosmopolitan Portability
FreeBSD Compatibility WAMR_BUILD_PLATFORM=freebsd Portability
iOS Compatibility WAMR_BUILD_PLATFORM=darwin Portability
RIOT OS Compatibility WAMR_BUILD_PLATFORM=riot Portability
RT-Thread Compatibility WAMR_BUILD_PLATFORM=rt-thread Portability
VxWorks Compatibility WAMR_BUILD_PLATFORM=vxworks Portability
Windows Compatibility WAMR_BUILD_PLATFORM=windows Portability
Legacy Exception Handling WAMR_BUILD_EXCE_HANDLING Wasm Proposal
Multi-memory WAMR_BUILD_MULTI_MEMORY Wasm Proposal
Fast JIT WAMR_BUILD_FAST_JIT Running mode
Multi-tier JIT Combination of flags Running mode
AoT Validator WAMR_BUILD_AOT_VALIDATOR Runtime Extensions
Debug AOT WAMR_BUILD_DEBUG_AOT Runtime Extensions
Dynamic AoT debugging WAMR_BUILD_DYNAMIC_AOT_DEBUG Runtime Extensions
Fast JIT Dump WAMR_BUILD_FAST_JIT_DUMP Runtime Extensions
Instruction Metering WAMR_BUILD_INSTRUCTION_METERING Runtime Extensions
Libc EMCC Compatibility WAMR_BUILD_LIBC_EMCC Runtime Extensions
Libc UVWASI Compatibility WAMR_BUILD_LIBC_UVWASI Runtime Extensions
RATS Library WAMR_BUILD_LIB_RATS Runtime Extensions
Mini Loader WAMR_BUILD_MINI_LOADER Runtime Extensions
SGX IPFS Support WAMR_BUILD_SGX_IPFS Runtime Extensions
Static PGO WAMR_BUILD_STATIC_PGO Runtime Extensions
WASM cache WAMR_BUILD_WASM_CACHE Runtime Extensions
Test garbage collection WAMR_TEST_GC Runtime Extensions