Skip to main content

Architecture

Architecture Overview

How the 15 Elements fit together to form the Land editor.

Architecture Overview

Code Editor Land is structured as 15 independent Elements - self-contained Rust crates and TypeScript packages that each handle a specific concern.

Layer 1 - Native Shell

ElementRole
MountainWindow, file system, and process management (Tauri)
AirUpdate, download, and crypto signing daemon

Layer 2 - IPC

ElementRole
VinegRPC protocol definitions and implementation
MistWebSocket communication layer

Layer 3 - Extension Host

ElementRole
CocoonRuns VS Code extensions via Effect-TS
GroveNative WASM and Rhai extension host
WorkerWeb Workers for frontend tasks

Layer 4 - UI

ElementRole
WindRe-implementation of the VS Code Workbench
SkyAstro UI component layer

Layer 5 - Build Toolchain

ElementRole
RestJS bundler for VS Code platform code (OXC-based)
OutputBundled JS artifacts produced by Rest
SideCarPre-built Node.js binaries for cross-platform use
MaintainCI/CD and maintenance scripts

Data Flow

User interaction
  → Mountain (native window event)
  → Vine (gRPC IPC)
  → Cocoon (extension host)
  → Wind (workbench state)
  → Sky (render)

Element Reference

ElementRoleLanguageRepository
MountainNative backend, Tauri app hostRustMountain
CocoonVS Code extension host via Effect-TSTypeScriptCocoon
WindVS Code Workbench re-implementationTypeScriptWind
SkyEditor interface rendererAstro/TypeScriptSky
AirBackground daemon (updates, crypto)RustAir
EchoWork-stealing task executorRustEcho
CommonAbstract traits and DTOsRustCommon
VinegRPC protocol definitionRust/ProtobufVine
RestJS bundler (OXC-based)RustRest
OutputBundled JS artifactsJavaScriptOutput
MistWebSocket communicationRustMist
GroveWASM/Rhai extension hostRustGrove
WorkerWeb Workers for frontendTypeScriptWorker
SideCarPre-built Node.js binariesCross-platformSideCar
MaintainCI/CD and maintenanceBuild toolingMaintain

See Also