Lapce
A native code editor written in Rust with remote development, language-server support, and a plugin system.
Why consider Lapce?
Lapce is an open-source code editor built in pure Rust with native GPU-accelerated rendering in Floem. It provides integrated Language Server Protocol support, modal editing, and seamless remote development over SSH for software engineers.
Learn Lapce by building
Practical setup notes, real use cases, and copy-ready examples in one focused guide.
In this guide5 sections
Overview and Core Architecture
Lapce (IPA: /læps/) is an open-source code editor engineered for high-performance development workflows. As documented on the project repository (https://github.com/lapce/lapce), Lapce is written in pure Rust with a user interface built in Floem, using Xi-Editor rope science for fast computation and wgpu for rendering. This native graphical stack eliminates the overhead of web-based runtimes, ensuring immediate startup and sub-millisecond typing responsiveness.
The internal architecture separates the visual interface from backend operations. As detailed in the official architecture guide (https://docs.lapce.dev/development/architecture.md), the lapce-proxy component isolates filesystem operations, plugins, and LSP language servers from the frontend GUI. When an engineer opens or edits files, the frontend application communicates directly with this proxy layer, maintaining synchronization while keeping the user interface completely decoupled from disk and language server latency.
Getting Started and Workspace Management
Setting up the editor is straightforward across major desktop operating systems. According to the official setup guide (https://docs.lapce.dev/get-started/setup.md), Lapce supports Linux, Windows, and macOS with prebuilt binaries available for installation across platforms. Users can launch the application immediately after downloading package archives, system installers, or portable binaries tailored to their specific platform architecture.
Once installed, organizing a project workflow begins with opening a root folder. As explained in the setup documentation (https://docs.lapce.dev/get-started/setup.md), opening a project folder displays the workspace file tree in the left explorer, while Go To File allows quick fuzzy searching with Cmd+p on macOS or Ctrl+p on Linux and Windows. This keyboard-driven workflow enables rapid navigation across extensive directory hierarchies without taking hands off the keyboard.
Remote Development Workflow
Remote development allows developers to execute workloads on powerful remote servers while maintaining the responsiveness of a native local desktop interface. According to the remote development guide (https://docs.lapce.dev/get-started/remote-development.md), remote development operates over SSH key authentication and uses the host OpenSSH client to connect to remote systems. By relying directly on the host OpenSSH client, connection profiles and credentials remain securely managed by standard system mechanisms.
Establishing a remote session initiates a dedicated background bridge. As documented in the remote development guide (https://docs.lapce.dev/get-started/remote-development.md), connecting to a remote target starts the lapce-proxy binary on the host to manage files, plugins, and LSP servers across an SSH tunnel. The local frontend renders the editing canvas while the remote proxy processes language intelligence, terminal commands, and filesystem events transparently.
Plugin Ecosystem and WebAssembly Extensions
Lapce features a modular plugin architecture that leverages WebAssembly for security and cross-language compatibility. As outlined on the official website (https://lapce.dev), developers can build extensions using any programming language that targets WASI. This allows plugin authors to write custom tools in C, Rust, Zig, or other languages that produce WebAssembly System Interface binaries without needing custom runtime bindings.
Publishing plugins to the public directory is handled through the dedicated Volts package manager. According to the plugin development documentation (https://docs.lapce.dev/development/plugin-development.md), plugin authors can install the volts command-line tool via cargo to publish packages directly to the registry:
cargo install voltsAfter generating an API token on the plugin portal, running volts publish within the extension directory deploys the compiled package directly to the registry (https://docs.lapce.dev/development/plugin-development.md):
volts publishLicensing and Community Releases
The project is governed by permissive open-source governance. As declared in the repository license (https://raw.githubusercontent.com/lapce/lapce/master/LICENSE), Lapce is distributed under the terms of the Apache License Version 2.0. This grants individuals and enterprises broad freedom to inspect, compile, customize, and redistribute the software with clear patent protections.
The project maintains an active release cadence with regular improvements and bug fixes. As recorded in the official release notes (https://github.com/lapce/lapce/releases/tag/v0.4.6), recent updates in version v0.4.6 added support for .har file recognition and introduced Ubuntu Plucky builds. These ongoing updates provide broad Linux distribution compatibility and expanded syntax support for modern development environments.
Related tools
More options with a similar category or technology profile.
diskus
Minimal, fast alternative to du -sh written in Rust using multi-threaded directory traversal.
peco
Simplistic interactive filtering tool for Unix pipelines, process lists, and file trees.
Dapr CLI
Command-line tool for managing Dapr distributed application runtime environments and sidecars.
Freeze
Generate beautiful image screenshots and SVGs of code snippets and terminal outputs.