The RAM tax is not optional. VS Code with a medium project: 500 MB to 1.5 GB of RAM. Three open windows means three Chromium renderer processes, each carrying a full heap. Every OS interaction crosses a serialized JSON IPC pipe.
"Where Electron takes 200 ms to open a dialog, Mountain takes 2."
Mountain replaces Electron's main process entirely with a Rust binary using Tauri. The OS's own WebView renders the UI: WKWebView on macOS, WebView2 on Windows, WebKitGTK on Linux. No bundled Chromium. No Node.js in the host process. Window management, file system access, process lifecycle, and auth tokens all happen in Rust with zero IPC overhead. Cold start in under 200 ms. RAM footprint 60-80% smaller per window.
- No Electron overhead. Tauri's WebView replaces three Chromium renderer processes. No 300 MB base memory footprint.
- Native file I/O. Async Rust (tokio) handles filesystem operations. File trees load instantly even on large monorepos.
- Your VS Code extensions work. Mountain manages the Cocoon sidecar over gRPC. Extensions run unchanged with sub-millisecond IPC.
- Secrets stay in the OS keychain. Authentication tokens stored via
keyring, not in plaintext config files. - Composable business logic. Operations expressed as declarative
ActionEffects. Testable, composable, no spaghetti callbacks. - Instant command dispatch. A central
Trackdispatcher routes every UI action to the right provider. The UI never waits.
| Principle | Description | Key Components |
|---|---|---|
| Implementation of Contracts | Implements abstract service traits from Common | Environment/* providers |
| Separation of Concerns | Each domain isolated in its own provider module | Environment/*, Command/* |
| Declarative Logic | Operations as ActionEffects executed by the runtime |
RunTime/*, Track/EffectCreation.rs |
| Centralized State | Single thread-safe ApplicationState |
ApplicationState/* |
| Typed IPC | gRPC for all Cocoon communication | Vine/* |
| UI-Backend Decoupling | Tauri commands and events, backend is UI-agnostic | Binary.rs, Command/* |
graph LR
classDef Mountain fill:#f9f,stroke:#333,stroke-width:2px
classDef Cocoon fill:#ccf,stroke:#333,stroke-width:2px
classDef Wind fill:#9cf,stroke:#333,stroke-width:2px
classDef Common fill:#cfc,stroke:#333,stroke-width:1px
classDef IPC fill:#ff9,stroke:#333,stroke-width:1px,stroke-dasharray: 5 5
subgraph "Mountain (Rust/Tauri Backend)"
TauriRuntime[Tauri App]:::Mountain
ApplicationRunTime[ApplicationRunTime]:::Mountain
ApplicationState[ApplicationState]:::Mountain
TrackDispatcher[Track Dispatcher]:::Mountain
VinegRPC[Vine gRPC Server]:::IPC
EnvironmentProviders[Environment Providers]:::Mountain
end
subgraph "Clients"
WindUI[Wind/Sky UI]:::Wind
CocoonSideCar[Cocoon Extension Host]:::Cocoon
end
TauriRuntime -- Manages --> ApplicationState
TauriRuntime -- Manages --> ApplicationRunTime
ApplicationRunTime -- Executes --> EnvironmentProviders
TrackDispatcher -- Routes --> ApplicationRunTime
TauriRuntime -- Hosts --> WindUI
WindUI -- Tauri Command --> TrackDispatcher
TrackDispatcher -- Tauri Events --> WindUI
VinegRPC -- gRPC --> CocoonSideCar
VinegRPC -- Forwards --> TrackDispatcher
Mountain/
├── Source/
│ ├── Binary.rs # Tauri entry point
│ ├── ApplicationState/ # Thread-safe state store
│ ├── Command/ # Tauri command handlers
│ ├── Environment/ # Common trait implementations
│ ├── ExtensionManagement/ # Extension scanning and parsing
│ ├── FileSystem/ # Native TreeView provider
│ ├── ProcessManagement/ # Cocoon sidecar lifecycle
│ ├── RunTime/ # Effect execution engine
│ ├── Track/ # Central request dispatcher
│ ├── Update/ # Self-updating logic
│ ├── Vine/ # gRPC server/client (tonic)
│ └── Workspace/ # .code-workspace handling
├── Proto/
│ └── Vine.proto # gRPC contract definition
└── build.rs # Proto compilation
Mountain is a Rust crate within the Land workspace. Follow the Land Repository instructions to build and run.
CC0 1.0 Universal. Public domain. No restrictions. LICENSE
Mountain is a core element of the Land ecosystem. This project is funded through NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program. Learn more at the NLnet project page.
The project is operated by PlayForm, based in Sofia, Bulgaria.
PlayForm acts as the open-source steward for Code Editor Land under the NGI0 Commons Fund grant.
| Land | PlayForm | NLnet | NGI0 Commons Fund |
|---|---|---|---|
|
|
|
|
|
Project Maintainers: Source Open (Source/Open@Editor.Land) | GitHub Repository | Report an Issue | Security Policy