Back to Wasm Micro Runtime

Tiered Support

doc/tiered_support.md

01-12-202021.2 KB
Original Source

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

DescriptionCompilation FlagsLabels
Linux CompatibilityWAMR_BUILD_PLATFORM=linuxPortability
AoT runtimeWAMR_BUILD_AOTRunning mode
Fast InterpreterWAMR_BUILD_FAST_INTERPRunning mode
Classic InterpreterWAMR_BUILD_INTERPRunning mode
AoT compilation (wamrc)WAMR_BUILD_WAMR_COMPILERCompiler
Bulk MemoryWAMR_BUILD_BULK_MEMORYWasm Proposal
Name sectionWAMR_BUILD_CUSTOM_NAME_SECTIONWasm Proposal
Extended Constant ExpressionsWAMR_BUILD_EXTENDED_CONST_EXPRWasm Proposal
Non-trapping float-to-intALWAYS ON. Can not be disabledWasm Proposal
Import/Export of Mutable GlobalsALWAYS ON. Can not be disabledWasm Proposal
Multi-valueALWAYS ON. Can not be disabledWasm Proposal
WASI LIBCWAMR_BUILD_LIBC_WASIWasm Proposal
WASI threadsWAMR_BUILD_LIB_WASI_THREADSWasm Proposal
Custom sectionsWAMR_BUILD_LOAD_CUSTOM_SECTIONWasm Proposal
Memory64WAMR_BUILD_MEMORY64Wasm Proposal
Reference TypesWAMR_BUILD_REF_TYPESWasm Proposal
ThreadsWAMR_BUILD_SHARED_MEMORYWasm Proposal
SIMD (128-bit)WAMR_BUILD_SIMDWasm Proposal
AOT intrinsicsWAMR_BUILD_AOT_INTRINSICSRuntime Extensions
AoT stack frameWAMR_BUILD_AOT_STACK_FRAMERuntime Extensions
Global heap poolWAMR_BUILD_GLOBAL_HEAP_POOLRuntime Extensions
Global heap sizeWAMR_BUILD_GLOBAL_HEAP_SIZERuntime Extensions
Libc builtinWAMR_BUILD_LIBC_BUILTINRuntime Extensions
Module instance contextWAMR_BUILD_MODULE_INST_CONTEXTRuntime Extensions
Quick AOT/JIT entriesWAMR_BUILD_QUICK_AOT_ENTRYRuntime Extensions
Shrunk memoryWAMR_BUILD_SHRUNK_MEMORYRuntime Extensions
Thread managerWAMR_BUILD_THREAD_MGRRuntime Extensions
App entryWAMR_DISABLE_APP_ENTRYRuntime Extensions
hardware bound checkWAMR_DISABLE_HW_BOUND_CHECKRuntime Extensions
stack hardware bound checkWAMR_DISABLE_STACK_HW_BOUND_CHECKRuntime Extensions
Wakeup blocking operationWAMR_DISABLE_WAKEUP_BLOCKING_OPRuntime Extensions

TierB

Targets

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

Features

DescriptionCompilation FlagsLabels
Darwin CompatibilityWAMR_BUILD_PLATFORM=darwinPortability
ESP-IDF CompatibilityWAMR_BUILD_PALTFORM=esp-idfPortability
Nuttx CompatibilityWAMR_BUILD_PALTFORM=nuttxPortability
SGX CompatibilityWAMR_BUILD_PALTFORM=linux-sgxPortability
Zephyr CompatibilityWAMR_BUILD_PALTFORM=zephyrPortability
StringrefWAMR_BUILD_STRINGREFWasm Proposal
Tail CallsWAMR_BUILD_TAIL_CALLWasm Proposal
LLVM JITWAMR_BUILD_JITRunning mode
Per Instance running modeALWAYS ON. Can not be disabledRuntime Extensions
Maximum stack size for app threadsWAMR_APP_THREAD_STACK_SIZE_MAXRuntime Extensions
Host defined loggingWAMR_BH_LOGRuntime Extensions
Host defined vprintfWAMR_BH_vprintfRuntime Extensions
Allocation with usage trackingWAMR_BUILD_ALLOC_WITH_USAGERuntime Extensions
Allocation with user dataWAMR_BUILD_ALLOC_WITH_USER_DATARuntime Extensions
Bulk-memory-optWAMR_BUILD_BULK_MEMORY_OPTRuntime Extensions
Call-indirect-overlongWAMR_BUILD_CALL_INDIRECT_OVERLONGRuntime Extensions
Copy Call StackWAMR_BUILD_COPY_CALL_STACKRuntime Extensions
Debug InterpreterWAMR_BUILD_DEBUG_INTERPRuntime Extensions
Dump call stackWAMR_BUILD_DUMP_CALL_STACKRuntime Extensions
Native General InvocationWAMR_BUILD_INVOKE_NATIVE_GENERALRuntime Extensions
Lazy JIT CompilationWAMR_BUILD_LAZY_JITRuntime Extensions
PthreadWAMR_BUILD_LIB_PTHREADRuntime Extensions
Pthread Semaphore SupportWAMR_BUILD_LIB_PTHREAD_SEMAPHORERuntime Extensions
Lime1 runtimeWAMR_BUILD_LIME1Runtime Extensions
Linux Performance CountersWAMR_BUILD_LINUX_PERFRuntime Extensions
Memory profilingWAMR_BUILD_MEMORY_PROFILINGRuntime Extensions
Multi-moduleWAMR_BUILD_MULTI_MODULERuntime Extensions
Perf profilingWAMR_BUILD_PERF_PROFILINGRuntime Extensions
Shared heapWAMR_BUILD_SHARED_HEAPRuntime Extensions
Stack Guard SizeWAMR_BUILD_STACK_GUARD_SIZERuntime Extensions
WASI Ephemeral NNWAMR_BUILD_WASI_EPHEMERAL_NNRuntime Extensions
WASI-NN (neural network APIs)WAMR_BUILD_WASI_NNRuntime Extensions
External Delegate for WASI NNWAMR_BUILD_WASI_NN_ENABLE_EXTERNAL_DELEGATERuntime Extensions
GPU Support for WASI NNWAMR_BUILD_WASI_NN_ENABLE_GPURuntime Extensions
External Delegate Path for WASI NNWAMR_BUILD_WASI_NN_EXTERNAL_DELEGATE_PATHRuntime Extensions
LLAMA CPP for WASI NNWAMR_BUILD_WASI_NN_LLAMACPPRuntime Extensions
ONNX for WASI NNWAMR_BUILD_WASI_NN_ONNXRuntime Extensions
OpenVINO for WASI NNWAMR_BUILD_WASI_NN_OPENVINORuntime Extensions
TFLite for WASI NNWAMR_BUILD_WASI_NN_TFLITERuntime Extensions
Configurable bounds checksWAMR_CONFIGURABLE_BOUNDS_CHECKSRuntime Extensions
Write GS baseWAMR_DISABLE_WRITE_GS_BASERuntime 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

DescriptionCompilation FlagsLabels
AliOS compatibilityWAMR_BUILD_PLATFORM=alios-thingsPortability
Android CompatibilityWAMR_BUILD_PLATFORM=androidPortability
Cosmo CompatibilityWAMR_BUILD_PLATFORM=cosmopolitanPortability
FreeBSD CompatibilityWAMR_BUILD_PLATFORM=freebsdPortability
iOS CompatibilityWAMR_BUILD_PLATFORM=darwinPortability
RIOT OS CompatibilityWAMR_BUILD_PLATFORM=riotPortability
RT-Thread CompatibilityWAMR_BUILD_PLATFORM=rt-threadPortability
VxWorks CompatibilityWAMR_BUILD_PLATFORM=vxworksPortability
Windows CompatibilityWAMR_BUILD_PLATFORM=windowsPortability
GC (Garbage Collection)WAMR_BUILD_GCWasm Proposal
Legacy Exception HandlingWAMR_BUILD_EXCE_HANDLINGWasm Proposal
Multi-memoryWAMR_BUILD_MULTI_MEMORYWasm Proposal
Branch HintsWAMR_BUILD_BRANCH_HINTSWasm Proposal
Fast JITWAMR_BUILD_FAST_JITRunning mode
Multi-tier JITCombination of flagsRunning mode
AoT ValidatorWAMR_BUILD_AOT_VALIDATORRuntime Extensions
Debug AOTWAMR_BUILD_DEBUG_AOTRuntime Extensions
Dynamic AoT debuggingWAMR_BUILD_DYNAMIC_AOT_DEBUGRuntime Extensions
Fast JIT DumpWAMR_BUILD_FAST_JIT_DUMPRuntime Extensions
Garbage Collection Heap VerifyWAMR_BUILD_GC_HEAP_VERIFYRuntime Extensions
Instruction MeteringWAMR_BUILD_INSTRUCTION_METERINGRuntime Extensions
Libc EMCC CompatibilityWAMR_BUILD_LIBC_EMCCRuntime Extensions
Libc UVWASI CompatibilityWAMR_BUILD_LIBC_UVWASIRuntime Extensions
RATS LibraryWAMR_BUILD_LIB_RATSRuntime Extensions
Mini LoaderWAMR_BUILD_MINI_LOADERRuntime Extensions
SGX IPFS SupportWAMR_BUILD_SGX_IPFSRuntime Extensions
Static PGOWAMR_BUILD_STATIC_PGORuntime Extensions
WASM cacheWAMR_BUILD_WASM_CACHERuntime Extensions
Test garbage collectionWAMR_TEST_GCRuntime Extensions