eval-exec/neomacs

▲ 62 stars today★ 1,394⑂ 50

NEO Emacs (WIP): GPU powered Emacs written in Rust with a modern display engine. Aiming for modern design & multi-threaded Elisp, 10x performance

About eval-exec/neomacs

eval-exec/neomacs is an open-source project on GitHub, mainly written in Rust. NEO Emacs (WIP): GPU powered Emacs written in Rust with a modern display engine. Aiming for modern design & multi-threaded Elisp, 10x performance It currently holds 1,394 stars and 50 forks with 54 open issues, and was last pushed on 2026-09-20 (repository created 2026-02-03).

Project Overview

Git Homed tracks it on the Today's Trending board, currently at rank #51 with 62 new stars today.

GitHub Repository Details

Repository eval-exec/neomacs · default branch main · size 212555 KB · watchers 22 · source: GitHub REST API and repository README

README

"I started Neomacs because I love Emacs, I respect Emacs, and I want to evolve the legendary Emacs into the ultimate modern powerhouse." — Eval Exec

✨ "While other editors can save your files, only Emacs can save your soul." ✨

https://github.com/eval-exec/neomacs/blob/HEAD/NEOMACS — Next generation of Emacs

Emacs, rewritten in Rust — unleashed on the GPU, fixing what 40 years of C never could.
Built for 100% compatibility with the Emacs ecosystem you already have — your config, your packages, your muscle memory.

https://github.com/eval-exec/neomacs/blob/HEAD/CI https://github.com/eval-exec/neomacs/blob/HEAD/Latest release https://github.com/eval-exec/neomacs/blob/HEAD/Downloads https://github.com/eval-exec/neomacs/blob/HEAD/License: GPL-3.0 https://github.com/eval-exec/neomacs/blob/HEAD/Discussions https://github.com/eval-exec/neomacs/blob/HEAD/X: Eval-Exec https://github.com/eval-exec/neomacs/blob/HEAD/Sponsor NEO Emacs

Install · Showcase · Animations · Architecture · FAQ · Discussions

NEO Emacs keeps everything that makes Emacs Emacs — your init.el, your packages, your muscle memory — and rebuilds the machinery underneath: the display engine runs on the GPU, and the ~300,000-line C core is reimplemented in Rust. GNU Emacs itself serves as the test oracle, so every rewritten subsystem is verified to behave identically. (Why rewrite Emacs?)

[!IMPORTANT]
NEO Emacs is a work in progress. Expect rough edges, breaking changes, and missing
features — bug reports are very welcome.
[!NOTE]
NEO Emacs is a hard fork of GNU Emacs (Lisp tree synced to emacs-31.1). The C core
has been fully replaced by Rust. Fork provenance and rationale: FAQ.

Showcase

Latest videos

Watch more demos and development updates on https://github.com/eval-exec/neomacs/blob/HEAD/YouTube Eval Exec's YouTube channel.

https://github.com/eval-exec/neomacs/blob/HEAD/NEO Emacs: Animated Buffer Transitions https://github.com/eval-exec/neomacs/blob/HEAD/NEO Emacs (WIP) v0.0.14 released, still in it's early development https://github.com/eval-exec/neomacs/blob/HEAD/NEO Emacs (WIP) is developing GPU Shader

Feature demos

Cursor, buffer-switch, and scroll animations — GPU-rendered at display refresh rate:

https://github.com/user-attachments/assets/85b7ee7b-3f4a-4cd2-a84f-86a91d052f11

More: 4K video, inline browser, inline terminal, rounded box faces…

Inline 4K Video Playback — DMA-BUF zero-copy, GPU backend

https://github.com/user-attachments/assets/275c6d9a-fced-44f6-8f43-3bbd2984d672

Inline 4K Images — GPU-decoded, won't block the Emacs main thread

https://github.com/eval-exec/neomacs/blob/HEAD/Inline 4K images in Emacs buffer

Inline Web Browser (WPE WebKit) — GPU backend, DMA-BUF zero-copy

https://github.com/eval-exec/neomacs/blob/HEAD/Inline WPE WebKit browser in Emacs buffer

Inline Terminal (Alacritty) — GPU-backed terminal embedded in a buffer

https://github.com/eval-exec/neomacs/blob/HEAD/Inline Alacritty terminal in Emacs buffer

GPU Text with Rounded Box Faces

https://github.com/eval-exec/neomacs/blob/HEAD/Round corner box face attribute

Highlights

(Vulkan · Metal · DX12 · GL); ~4,000 lines of Rust replace ~50,000 lines of xdisp.c integration on Linux), GPU-decoded images, a WPE WebKit browser, and a GPU terminal; DMA-BUF paths stay on the GPU, with typed fallbacks where native interop is unavailable transitions at display refresh rate, all configurable from Elisp (full catalog) display engine begins; NEO Emacs opens the whole frontend to Elisp, from render effects down to GPU shaders (WGSL) — hack the pixels, not just the text every rewritten subsystem is diffed against GNU Emacs as a test oracle, and real-world configs like Doom Emacs are the daily test bed dump, and editor internals are all memory-safe, modern Rust (status)

Install

Prefer system packages? Download them from Releases:

| Platform | Packages | |----------|----------| | Linux | .deb · .rpm · tarball · AppImage (x86_64, aarch64) | | macOS (experimental) | .dmg · .zip · .tar.gz (Apple Silicon) | | Windows (experimental) | installer .exe · portable .zip (x86_64, aarch64) |

On Windows, launch runneomacs.exe for the GUI without a console window. Installer shortcuts use this launcher. Use neomacs.exe from a terminal for -nw, --batch, redirected output, and shell exit status.

For terminal, batch, and Linux container deployments, the complete application is also published for amd64 and arm64 on evalexec/neomacs and ghcr.io/eval-exec/neomacs. See the Docker guide.

The Linux product links the system GStreamer runtime and provides video. Every Linux artifact carries it: the .deb and .rpm declare the dependency, and the AppImage bundles that closure, though codec plugin families still come from the host.

The .rpm is built inside an el9 container, so it installs on RHEL 9, Rocky, Alma and Fedora 43+ — a package built on Ubuntu cannot, because rpmbuild records the build host's ncurses and glibc symbol versions as requirements. See releasing-linux.md.

Build from source
git clone https://github.com/eval-exec/neomacs && cd neomacs

Optional (recommended): repo dev shell with all dependencies

nix develop --accept-flake-config

Compiles Rust, bootstraps Elisp, generates the portable dump

cargo xtask fresh-build --release

./target/release/neomacs

Run Cargo commands from within the checkout (normally its root). Cargo discovers .cargo/config.toml from the invocation directory; Neomacs uses that config to provide member crates with the repository root for shared Lisp and test assets.

Platform dependencies (Arch, macOS, Nix/Cachix) and the test suites: docs/building.md.

Status

| Area | State | |------|-------| | 100% GNU Emacs compatibility (oracle test suites) | 🚧 ~95%, closing the last gaps | | JIT compilation + inline caching for Elisp | 🚧 working, profiling and improving | | zero pause GC | 🚧 maturing | | Elisp-hackable frontend — GPU shaders, surfaces | 🚧 early, expanding | | Rust Elisp runtime — evaluator, bytecode VM, portable dump | 🚧 refactoring, testing, improving | | GPU display + layout engine (replaces xdisp.c) | 🚧 early, improving | | Inline images, 4K video, WebKit browser | 🚧 works today, experimental, improving | | High-performance neo-term (GPU terminal) | 🚧 in development | | Cursor / scroll / buffer-switch animations | 🚧 polishing, catalog growing | | Performance | 🔬 profiling, benchmarking, tuning | | True multi-threaded Elisp | 🔬 designing, researching, experimental attempts | | TUI renderer (neomacs -nw) | 🚧 usable, polishing | | Cross-platform support | 🚧 Linux & macOS first; Windows awaiting testing; WASM, Android & iOS planned |

Architecture

Everything runs in Rust across two threads — the Emacs thread owns the Elisp runtime and editor state, the render thread owns the GPU.

Design principles, the full module map, and why Rust/wgpu: docs/ARCHITECTURE.md.

-----

❤️ Sponsoring ❤️

NEO Emacs is a long-term project that takes significant ongoing work to build, test, and maintain. If NEO Emacs is useful or exciting to you, please consider supporting its development on:

BTC (Bitcoin) Ethereum — ETH · USDC · any ERC-20
https://github.com/eval-exec/neomacs/blob/HEAD/Bitcoin (BTC) donation QR code https://github.com/eval-exec/neomacs/blob/HEAD/Ethereum donation QR code (ETH, USDC and other ERC-20 tokens)
bc1p0y3fzffqrqw08k8nc2ge3dfj02hr22ku8nugnc04ek522gty9kjsyy8lgc 0xF5e8493b611F8D4c07850C2cC77b38dD632620F2

-----

Acknowledgments

Built with wgpu · winit · cosmic-text — cursor animations inspired by Neovide.

License

GNU General Public License v3.0 (same as Emacs)

GitHub Stars & Activity

1,394Stars
50Forks
54Open issues
RustLanguage

GitHub Popularity

GitHub stars1,394
Forks50
Open issues54
Primary languageRust
LicenseGPL-3.0
Stars gained today62
Created2026-02-03
Last pushed2026-09-20

Trending History

Daily boardrank #51 · ▲ 62 stars

Related GitHub Projects

1

rust-unofficial / awesome-rust

Rust★ 59,449⑂ 3,626▲ 23 stars
2

typst / typst

Rust★ 56,140⑂ 1,719▲ 23 stars
3

xai-org / x-algorithm

Rust★ 33,290⑂ 5,405▲ 30 stars
4

atuinsh / atuin

Rust★ 31,755⑂ 971▲ 47 stars
5

CapSoftware / Cap

Rust★ 22,547⑂ 1,940▲ 103 stars
6

rui314 / mold

Rust★ 17,189⑂ 558▲ 44 stars
7

cloudflare / quiche

Rust★ 12,130⑂ 1,123▲ 264 stars
8

EpicGames / lore

Rust★ 8,698⑂ 434▲ 23 stars

More Trending Repositories