Introduction
Lapce is a code editor that prioritizes performance above all else. Written in Rust with GPU-accelerated rendering via wgpu, it achieves startup times and editing responsiveness that VS Code and other Electron-based editors cannot match. It brings modal editing (like Vim/Neovim) into a modern GUI with first-class LSP support.
With over 38,000 GitHub stars, Lapce is one of the most ambitious Rust GUI projects. It competes directly with Zed for the "fast native editor" market while offering Vim-style modal editing as a first-class feature.
What Lapce Does
Lapce provides a complete code editing experience: syntax highlighting via Tree-sitter, language intelligence via LSP, modal editing (Vim keybindings by default), integrated terminal, remote development over SSH, and a WASI-powered plugin system. Everything renders on the GPU for consistent sub-millisecond frame times.
Architecture Overview
[Lapce GUI]
wgpu-based GPU rendering
Custom widget toolkit (Floem)
|
+-------+-------+-------+
| | | |
[Editor [Terminal] [Remote]
Core] Built-in SSH dev
Modal terminal Edit remote
editing emulator files natively
|
[Language Support]
Tree-sitter: syntax
LSP: completions, diagnostics
|
[Plugin System (WASI)]
WebAssembly plugins
Language-agnostic
Sandboxed executionSelf-Hosting & Configuration
// settings.json — Lapce configuration
{
"editor.font-family": "JetBrains Mono",
"editor.font-size": 14,
"editor.tab-width": 4,
"editor.modal": true,
"editor.cursor-surrounding-lines": 5,
"editor.auto-save": "afterDelay",
"terminal.font-size": 13,
"core.color-theme": "Lapce Dark"
}Key Features
- Rust + GPU Rendering — sub-millisecond frame times via wgpu
- Modal Editing — Vim-style keybindings as first-class feature
- LSP Support — code completion, diagnostics, go-to-definition
- Remote Development — edit files on remote machines via SSH
- WASI Plugins — WebAssembly plugin system for extensions
- Tree-sitter — fast, accurate syntax highlighting
- Built-in Terminal — integrated terminal emulator
- Split Views — multiple editor panels and layouts
Comparison with Similar Tools
| Feature | Lapce | Zed | VS Code | Neovim | Helix |
|---|---|---|---|---|---|
| Language | Rust | Rust | Electron/TS | C | Rust |
| GUI | Native (wgpu) | Native (GPUI) | Web-based | Terminal | Terminal |
| Modal Editing | Yes (default) | Vim mode | Via extension | Yes | Yes |
| Remote Dev | SSH built-in | No | SSH extension | SSH | No |
| Plugins | WASI | Extensions | Marketplace | Lua | No plugins |
| Performance | Excellent | Excellent | Good | Excellent | Excellent |
| GitHub Stars | 38K | 79K | 170K | 89K | 38K |
FAQ
Q: Lapce vs Zed — how do they differ? A: Both are fast Rust editors. Lapce has built-in modal editing and SSH remote development. Zed focuses on multiplayer collaboration and AI integration. Lapce is more Vim-oriented; Zed is more VS Code-oriented.
Q: Is Lapce ready for daily use? A: Lapce is usable for many workflows but is still in active development (pre-1.0). Plugin ecosystem and some features are less mature than VS Code. Best for developers who prioritize speed and modal editing.
Q: Does Lapce support VS Code extensions? A: No. Lapce uses its own WASI-based plugin system. It has a growing but smaller plugin ecosystem compared to VS Code.
Q: Can I use Lapce without Vim keybindings? A: Yes. While modal editing is the default, you can switch to a non-modal mode in settings for a more traditional editing experience.
Sources
- GitHub: https://github.com/lapce/lapce
- Website: https://lapce.dev
- Created by Dongdong Zhou
- License: Apache-2.0