A modern desktop font editor for OpenType feature file (FEA) parsing and GSUB/GPOS table compilation, written in Rust with a Tauri shell and Leptos UI.
A modern desktop font editor for OpenType feature files (FEA) and UFO sources, now powered by fontc sidecar for incremental TTF compilation. Written in Rust with Tauri desktop shell and Leptos UI.
OFFED edits UFO fonts with FEA feature files, using the embedded fontc binary for incremental compilation to complete TTF fonts. These TTFs power rustybuzz text shaping previews and enable direct TTF export.
OFFED v0.2.0 is now available with cross-platform binary distributions!
🎉 Cross-Platform Binaries
- Windows: .exe executable and .msi installer
- macOS: .app bundle and .dmg disk image (Apple Silicon)
- Linux: AppImage, .deb, and .rpm packages
✨ Editor Improvements - Smart cursor-position insertion for features and lookups - Enhanced error reporting with detailed fontc validation messages - Fixed syntax highlighting toggle and scrolling - Improved feature control synchronization
🔧 Parser Enhancements - Full contextual substitution and positioning support (GSUB Type 6, GPOS Type 7/8) - 91 passing tests with comprehensive validation
🛠️ Build System - Streamlined Makefile commands - Aligned local and CI/CD build processes - macOS-specific build documentation
Version 0.1.0 (9th January 2026) → First Alpha Release.
View for details on installing.
norad (native backend)Rust 1.70+ (MSRV), Cargo, platform deps (see Tauri guide)
Linux (GTK/WebKit):
# Debian/Ubuntu
sudo apt update
sudo apt install libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libxdo-dev \
libssl-dev \
libayatana-appindicator3-dev \
librsvg2-dev
# Fedora
sudo dnf check-update
sudo dnf install webkit2gtk4.1-devel \
openssl-devel \
curl \
wget \
file \
libappindicator-gtk3-devel \
librsvg2-devel \
libxdo-devel
sudo dnf group install "c-development"
A Makefile is provided to simplify development and build tasks.
Build for Production:
git clone https://gitlab.com/mitradranirban/offed.git
cd offed
make build
Development (Two options):
Sequential (Automatic): Launches the UI server in a background terminal and then starts the desktop app.
make devel
Manual (Split Terminals):
make dev-ui
make dev
make test
Format code*
make fmt
Check for errors and clippy warnings
make check
offed/
├── crates/
│ ├── offed-core/ # UFO/FEA models (GSUB/GPOS builders DEPRECATED)
│ ├── offed-tauri/ # Tauri backend
│ │ └── binaries/fontc # 🔥 Embedded fontc compiler binary
│ ├── offed-wasm/ # Leptos UI (previews use rustybuzz + TTF)
│ └── offed-tests/ # Test utils
├── docs/ # Architecture + FEA guide
├── examples/ # Sample FEA/UFO
└── Cargo.toml # Workspace
offed-tauri spawns binaries/fontc with UFO + FEA inputsLegacy Note: Direct GsubBuilder/GposBuilder usage is deprecated. Route all compilation through fontc calls.
Three Layers:
1. Core (offed-core): Pure Rust models (UFO/FEA)
2. Tauri Backend (offed-tauri): FS access + fontc orchestration
3. WASM UI (offed-wasm): Reactive editor + rustybuzz canvas
Fontc runs natively in Tauri process; TTF streams to WASM for previews. See ARCHITECTURE.
MIT Licence See LICENSE.