# bytecodealliance/wasmtime

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/bytecodealliance-wasmtime).**

18,208 stars · 1,743 forks · Rust · Apache-2.0

## Links

- GitHub: https://github.com/bytecodealliance/wasmtime
- Homepage: https://wasmtime.dev/
- awesome-repositories: https://awesome-repositories.com/repository/bytecodealliance-wasmtime.md

## Topics

`aot` `cranelift` `jit` `lightweight` `portable` `runtime` `rust` `sandbox` `standalone` `wasi` `wasm` `wasmtime` `webassembly`

## Description

Wasmtime is a WebAssembly runtime and sandboxed bytecode executor designed to run WebAssembly bytecode on a host system. It functions as an embeddable engine that integrates into applications through native APIs and language-specific bindings, as well as a standalone execution environment accessible via a command line interface. It is a WASI compatible runtime, implementing the WebAssembly System Interface to provide portable access to system resources.

The engine utilizes a JIT compilation model to translate intermediate representation into optimized machine code for various CPU architectures. To balance performance and startup time, it supports multiple execution strategies, including a single-pass baseline compiler for fast startup and a portable interpreter for immediate execution without compilation.

The runtime provides secure code sandboxing and resource consumption limits for CPU and memory to ensure host stability. Security is further managed through bounds-checked memory access to mitigate side-channel attacks. Additionally, the project supports polyglot component integration, allowing software components written in different programming languages to communicate via standardized binary formats and interfaces.

## Tags

### Programming Languages & Runtimes

- [WebAssembly](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/webassembly.md) — A standalone and embeddable runtime for compiling, managing, and executing portable WebAssembly binary code.
- [WASI Implementations](https://awesome-repositories.com/f/programming-languages-runtimes/wasi-implementations.md) — Implements the WebAssembly System Interface to provide portable access to filesystems and networking.
- [WebAssembly Engine Embedding](https://awesome-repositories.com/f/programming-languages-runtimes/c-library-embedding/runtime-embedding/webassembly-engine-embedding.md) — Allows integrating a WebAssembly execution engine into host applications via native APIs and language bindings. ([source](https://github.com/bytecodealliance/wasmtime/tree/main/examples))
- [JIT Compilation Engines](https://awesome-repositories.com/f/programming-languages-runtimes/jit-compilation-engines.md) — Translates WebAssembly intermediate representation into optimized machine code for various CPU architectures.
- [Just-In-Time Compilation](https://awesome-repositories.com/f/programming-languages-runtimes/just-in-time-compilation.md) — Translates target-independent intermediate representation into optimized native machine code for specific CPU architectures.
- [Machine Code Generation](https://awesome-repositories.com/f/programming-languages-runtimes/machine-code-generation.md) — Translates target-independent intermediate representation into executable machine code optimized for various CPU architectures. ([source](https://github.com/bytecodealliance/wasmtime/tree/main/cranelift))
- [Embedded Wasm Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/webassembly/embedded-wasm-runtimes.md) — Integrates a WebAssembly execution engine into a host application to run untrusted or portable code via native APIs.
- [Bytecode Interpreters](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-infrastructure/compilers/bytecode-interpreters.md) — Executes instructions directly via a portable interpreter for immediate execution without a compilation step.
- [Language Bindings](https://awesome-repositories.com/f/programming-languages-runtimes/language-interoperability/language-bindings.md) — Exposes a stable low-level C-API to allow various high-level languages to embed the runtime engine.
- [Polyglot Application Development](https://awesome-repositories.com/f/programming-languages-runtimes/polyglot-application-development.md) — Combines software components written in different languages using a standardized binary format and communication interface.

### DevOps & Infrastructure

- [Code Execution Sandboxes](https://awesome-repositories.com/f/devops-infrastructure/execution-environments/code-execution-runtimes/code-execution-sandboxes.md) — Executes portable binaries with strict limits on CPU, memory, and system resource access to ensure host stability.

### Security & Cryptography

- [Wasm Sandboxes](https://awesome-repositories.com/f/security-cryptography/application-and-system-security/sandbox-and-isolation/isolated-execution-sandboxes/wasm-sandboxes.md) — Provides a secure execution environment using WebAssembly to isolate guest modules from the host system.
- [Portable System Interfaces](https://awesome-repositories.com/f/security-cryptography/identity-access-management/access-control/access-control-models/attribute-based-access-controls/system-access-policies/portable-system-interfaces.md) — Provides secure and portable interaction with host operating system features like filesystems and networking. ([source](https://bytecodealliance.github.io/wasmtime/))
- [Memory Bounds Checking](https://awesome-repositories.com/f/security-cryptography/memory-bounds-checking.md) — Implements strict checks on heap and table offsets to prevent unauthorized memory access and side-channel attacks.
- [Runtime Bound Checks](https://awesome-repositories.com/f/security-cryptography/side-channel-resistant-primitives/runtime-bound-checks.md) — Implements bounds-checked memory access for heaps and tables to mitigate side-channel attacks. ([source](https://github.com/bytecodealliance/wasmtime/tree/main/cranelift))

### System Administration & Monitoring

- [Execution Resource Constraints](https://awesome-repositories.com/f/system-administration-monitoring/resource-constraints/algorithmic-resource-limiters/execution-resource-constraints.md) — Controls CPU and memory consumption for individual instances to ensure host stability and prevent resource exhaustion.
- [Resource Usage Restrictions](https://awesome-repositories.com/f/system-administration-monitoring/resource-usage-limiters/resource-usage-restrictions.md) — Enforces strict limits on CPU and memory consumption to prevent resource exhaustion and ensure host stability. ([source](https://github.com/bytecodealliance/wasmtime/blob/main/README.md))

### Part of an Awesome List

- [Cross-Platform Compilers](https://awesome-repositories.com/f/awesome-lists/devtools/cross-platform-compilers.md) — Translates target-independent WebAssembly intermediate representation into optimized machine code for various CPU architectures.

### Development Tools & Productivity

- [Command Line Applications](https://awesome-repositories.com/f/development-tools-productivity/command-line-interfaces/command-line-applications.md) — Includes a standalone executable to run WebAssembly binary files directly from a command line interface. ([source](https://bytecodealliance.github.io/wasmtime/lang-ruby.html))

### Software Engineering & Architecture

- [Polyglot Component Models](https://awesome-repositories.com/f/software-engineering-architecture/polyglot-component-models.md) — Leverages standardized binary formats to enable software components from different languages to communicate. ([source](https://bytecodealliance.github.io/wasmtime/))

### User Interface & Experience

- [Host Communication Interfaces](https://awesome-repositories.com/f/user-interface-experience/host-communication-interfaces.md) — Provides standardized communication APIs for guest modules to interact with host system resources. ([source](https://github.com/bytecodealliance/wasmtime#readme))

### Web Development

- [Baseline Compilation Strategies](https://awesome-repositories.com/f/web-development/performance-optimizations/component-update-optimizations/bytecode-compilers/single-pass-compilers/baseline-compilation-strategies.md) — Translates bytecode into machine code in one pass to prioritize fast startup time.
