Building from source
Birchpad is written in Rust. It needs the toolchain pinned in rust-toolchain.toml; rustup installs it automatically.
git clone https://github.com/SecurityTrip/Birchpadcd Birchpadcargo run -p birchpad # build and runcargo build -p birchpad --releasecargo test --workspace # testsOn Debian and Ubuntu, install the build libraries first:
sudo apt-get install -y build-essential pkg-config libxkbcommon-dev libxkbcommon-x11-dev \ libwayland-dev libvulkan-dev libx11-xcb-dev libxcb1-dev libfontconfig-dev libfreetype-dev \ libssl-dev libzstd-devRepository layout
Section titled “Repository layout”| Path | Contents |
|---|---|
crates/core |
Text model: rope, selections, change sets, undo history. No UI. |
crates/config |
Settings layers: defaults, machine defaults, user, policies. |
crates/commands |
Command catalog, keymap and menus as data. |
crates/io |
Encoding detection and conversion, reading and safely saving files. |
crates/view |
Layout of a document view: tab stops, word wrap, visual rows. |
crates/syntax |
Languages and syntax trees: detection, tree-sitter, highlighting, folding. |
crates/theme |
Themes, their format and the Notepad++ theme import. |
crates/cli |
Notepad++-style command line and the hand-off to a running instance. |
crates/update |
Updates: the signed manifest, channels, installing. |
crates/menu-bar |
The menu bar on Windows and Linux, with keyboard access. |
crates/app |
The application itself, on GPUI. |
packaging/ |
MSI, macOS bundle, portable mode, update signing. |
docs/adr/ |
Architecture decision records. |
How development and testing work: Contributing.