Stellar Development Foundation explains why Soroban's initial release uses the WASMI interpreter instead of a JIT compiler, citing security concerns, simplicity, and the complexity of integrating JIT with blockchain-specific requirements like metering.

This technical blog post details SDF's architectural decision to use WASMI, a 13k-line-of-code interpreter, for Soroban's smart contract runtime rather than a JIT compiler. The post outlines four key reasons: (1) Security—JITs have larger codebases prone to critical vulnerabilities and are susceptible to "JIT bombs" from malicious input; (2) Lack of variety—the only safe single-pass WASM compiler (Wasmer) is too large and complex for SDF's comfort; (3) Unclear gains—JIT compilation adds latency unsuitable for high-throughput blockchains and requires complex caching and fee model changes, while Soroban's design delegates heavy computation to host functions anyway; (4) Metering complexity—JIT-based metering is unpredictable, whereas the simple interpreter makes it straightforward to count WASM instructions and charge accordingly. SDF emphasizes conservative engineering principles for financial infrastructure and notes they're monitoring wasmtime's single-pass compilation work for potential future reconsideration.