Skip to main content

Crate Mountain

Crate Mountain 

Source
Expand description

§Mountain: Native Backend for Code Editor Land

Mountain replaces Electron with Rust and Tauri. It manages windows, file systems, processes, and extensions at native speed. Where Electron takes milliseconds, Mountain responds in microseconds.

§What Mountain Does

  • Hosts the editor UI via Tauri webview (no Chromium process overhead)
  • Runs VS Code extensions by managing the Cocoon sidecar over gRPC
  • Handles file I/O through native async Rust (tokio), not Node.js fs
  • Manages terminals via native PTY (portable-pty), not shell wrappers
  • Stores secrets in the OS keychain (keyring crate), not plaintext

§Architecture

Mountain uses a declarative effect system defined in Common. Business logic is expressed as ActionEffects executed by the ApplicationRunTime. All state lives in a single thread-safe ApplicationState managed by Tauri.

Wind/Sky (UI) ──Tauri commands──> Mountain ──gRPC──> Cocoon (extensions)
                                     │
                                     ├── Environment providers (file, process, terminal)
                                     ├── ApplicationRunTime (effect executor)
                                     └── ApplicationState (shared state)

§Module Layout

§Core Infrastructure

  • ApplicationState: Centralized, thread-safe state for the entire app
  • Environment: Capability providers (file system, processes, extensions)
  • RunTime: Effect execution engine that runs ActionEffect pipelines

§Communication

  • IPC: Inter-process communication primitives
  • [Air]: Client for the background daemon (updates, crypto signing)
  • Vine: gRPC server/client for Cocoon extension host communication
  • RPC: Remote procedure call service implementations

§Services

§Commands

  • Command: Native command handlers (file, edit, view, terminal)
  • Track: Central command dispatcher routing UI requests to providers
  • Workspace: .code-workspace file parsing and multi-root support
CrateRole
CommonAbstract traits and DTOs that Mountain implements
EchoWork-stealing task scheduler used by Mountain’s runtime
AirBackground daemon that Mountain communicates with

§Getting Started

Mountain builds as part of the Land monorepo:

cargo build -p Mountain

Full setup: https://github.com/CodeEditorLand/Land

Modules§

ApplicationState
Centralized, thread-safe application state managed by Tauri.
Binary
Binary entry points for desktop and mobile builds.
Command
Native command handlers for file, edit, view, and terminal operations. Commands registered at startup and dispatched via Tauri invoke handlers.
Environment
Capability providers: file system, process, terminal, and extension host.
ExtensionManagement
Extension discovery, scanning, and activation. Extension lifecycle: scan bundled + user-installed extension trees, parse their package.json manifests, install VSIX archives. Mountain owns the discovery surface; activation runs in Cocoon over gRPC.
FileSystem
Native TreeView provider for the File Explorer. Native file-explorer surface for the workspace sidebar. Mountain owns the tree-view provider; URIs flow through CommonLibrary::FileSystem traits.
IPC
Inter-process communication primitives. Inter-process communication for Mountain: Tauri commands, Wind sync, Air daemon client, and Sky event emission.
LandFixTier
Emits a single ISO-timestamped boot banner listing all compiled-in tier values.
ProcessManagement
Sidecar process lifecycle: launch, monitor, and restart.
RPC
Remote procedure call service implementations. Mountain RPC services. CocoonService is the active surface - the tonic server impl that Cocoon dials into.
RunTime
Effect execution engine that drives ActionEffect pipelines. Effect execution engine for the Mountain application. Provides the runtime environment for executing effects through the Echo scheduler.
Track
Central command dispatcher routing UI requests to the correct provider. Central request dispatcher that routes commands from the Sky frontend and Cocoon sidecar into strongly-typed ActionEffects executed by the runtime.
Vine
gRPC server and client for Cocoon extension host communication.
Workspace
.code-workspace file parsing and multi-root workspace support. Workspace lifecycle: .code-workspace parsing, multi-root folder resolution, workspace-scoped configuration.

Macros§

TraceStep
Logs a checkpoint message at TRACE level (for “every step” tracing).
dev_log
Tag-gated dev log. Compiled out in release builds.
effect
Wraps an async body into the full MappedEffect closure boilerplate. $run_time names the Arc<ApplicationRunTime> parameter inside the body.
impl_provider
Macro to generate Requires<dyn T> trait implementations for MountainEnvironment.
otel_span
Convenience macro: emit an OTLP span for an IPC handler. Usage: otel_span!("file:readFile", StartNano, &[("path", &Path)]);

Functions§

main
Main entry point for both mobile and desktop builds.