Skip to main content

External Transport

The MCI Server exposes a single HTTP endpoint that automatically negotiates the most suitable transport protocol for each client connection. This allows MCI to provide low-latency communication and continuous feedback during script execution, regardless of the client’s capabilities or network conditions.

Supported Protocols

MCI supports multiple versions of the HTTP standard and selects the best available option at connection time:
  • HTTP/1.1: A universally supported fallback for legacy clients.
  • HTTP/2: A modern, multiplexed transport that enables efficient request handling and streaming over a single connection.
  • HTTP/3: A QUIC-based transport optimized for unreliable or high-latency networks, improving resilience and tail latency.
Clients do not need to explicitly choose a protocol; negotiation is handled automatically by the transport layer.

Internal Transport

The central MCI server needs to communicate with it’s modules. For this, MCI uses WASI (WebAssembly System Interface). WASI (the WebAssembly System Interface) provides a way to compose software written in different programming languages within the same process, without relying on costly and clunky interface systems such as HTTP-based microservices. By standardizing how WebAssembly modules interact with the host system, WASI enables language-agnostic components to communicate through well-defined, low-overhead boundaries. This makes it possible to safely embed plugins, extensions, or shared logic written in different languages without network serialization, service orchestration, or runtime duplication. WASI is particularly well suited for projects that maintain SDKs across multiple languages, including client libraries and plugin-based architectures. A concrete example is the Zed editor, which uses WebAssembly and WASI to support a fast, secure, and extensible plugin model while preserving native-level performance.
Last modified on March 14, 2026