← Docs Home

VOLT

Runtime Architecture • Compiled User Layer

Launch & Shell Layer

Entry + UI Runtime
crates/volt
Executable entry point, launch modes, process supervisor, dynamic user-library loading
editor-sdl::run_demo_shell
Default SDL shell path plus hidden one-frame runtime smoke mode
ShellState
Owns EditorRuntime, shell buffers, browser host, deferred startup, UI services
ShellUiState
Panes, popups, active buffers, picker state, overlays, diagnostics, shell-local UI state
Shell Hooks
Cursor, Vim edit, picker, workspace, terminal, ACP, Git, browser, PDF, DB flows
Renderer + Input
SDL3 rendering, font shaping, statusline, command line, hover, completion, mouse/key input

Compiled User Layer

ABI + Packages
user/sdk
Only stable plugin ABI crate; abi_stable types shared across host/user boundary
user crate
Compiled customization library, linked in dev and loadable as user.dll/libuser.so
Plugin Packages
Buffer, workspace, Vim, picker, pane, terminal, compile, LSP, DAP, Git, Oil
Feature Packages
ACP, autocomplete, hover, browser, DB explorer, PDF, image, multicursor, undotree
Registries
Syntax languages, themes, language servers, debug adapters, providers, workspace roots
Declarative Metadata
Commands, hook declarations, hook bindings, scoped/Vim-mode keybindings, feature specs
Statusline + UI Policy
User-defined statusline, icons, ligatures, Oil layout, Git sections, browser prompts
Language Modules
Rust, TS/JS, C#, Python, Go, SQL, Markdown, web, config, shell, and many more

Editor Runtime Core

Model + Registries
EditorRuntime
Bundles EditorModel, ServiceRegistry, CommandRegistry, HookBus, KeymapRegistry
editor-core
Window → Workspace → Pane/Popup → Buffer model plus commands, hooks, keymaps
editor-plugin-host
Activates PluginPackage metadata into runtime commands, hooks, subscriptions, keybindings
ServiceRegistry
Stores shell state, registries, job managers, quickfix, terminal, theme, user library service
CommandRegistry
Core and package commands, command palette entries, keybinding targets
HookBus
Startup, file open, workspace, cursor, Vim edit, LSP, DAP, compile, terminal, UI events
KeymapRegistry
Global, workspace, popup scopes with Any/Normal/Insert/Visual Vim modes
Bootstrap Demo
Non-UI path builds runtime, loads packages, registries, hooks, LSP/DAP/syntax/theme summary

Domain Crates

Subsystems
editor-buffer
Rope-backed text buffers, edits, undo/redo, text objects, line endings
editor-fs
Workspace discovery, directory buffers, filesystem entries and edits
editor-syntax
Tree-sitter language registration, grammar loading, highlighting, contexts
editor-theme
Theme registry, token resolution, styles shared with syntax and UI
editor-render
Draw commands, text layout support, colors and rectangles for shell renderer
editor-lsp / editor-dap
Language-server specs, sessions, diagnostics, debug-adapter plans
editor-jobs / terminal
External command execution, compilation jobs, live terminal sessions
editor-git
Status snapshots, log/stash parsing, repository state for Git views and fringe
editor-picker
Fuzzy matching, picker sessions, ranked item selection
editor-db
Database connection descriptors, query execution helpers, schema browsing support
editor-icons
Bundled Nerd Font symbol metadata used by user icon exports and shell rendering
editor-path
Path pattern matching for package hook detail filters and file-open behavior

Platform & Assets

Foundation
SDL3 + SDL_ttf
Native window, input loop, font rendering, Windows SDL_ttf build config
Browser Host
WebView/browser IPC groundwork for browser buffers and host events
Bundled Assets
Logos, icon fonts, grammar queries, app resources copied into crate/docs assets
Runtime Environment
Shell command environment, Windows PATH handling, user data/log/grammar directories
Cross-Platform Targets
Windows-first development with macOS/Linux paths for data dirs and shell support
xtask
Workspace automation for fmt, check, clippy, test, CI validation

External Integrations

Language Services

rust-analyzer (Rust)
typescript-language-server
csharp-ls (C#)
yaml-language-server
taplo, Lua, Python, Go, Java and more through user/lsp.rs

Debug Adapters

CodeLLDB (Rust/C++)
Node Debug Adapter
User-defined DAP specs exported by compiled library

External Tools

Git CLI/status data for status, diff, commit, fringe views
Shell commands and build jobs through editor-jobs
Database engines through editor-db descriptors
Tree-sitter grammars under VOLT_GRAMMAR_DIR or user data dir

Core Technologies

Rust Cargo Workspace SDL3 SDL_ttf Tree-sitter LSP DAP Tokio Serde Ropey ABI Stable Crossbeam Portable PTY Nerd Fonts xtask