neomacs README

The project's README from github.com/eval-exec/neomacs. As one markdown file: README.md.

"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." ✨

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.

CI Latest release Downloads License: GPL-3.0 Discussions X: Eval-Exec 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 YouTube Eval Exec's YouTube channel.

NEO Emacs: Animated Buffer Transitions NEO Emacs (WIP) v0.0.14 released, still in it's early development 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

Inline 4K images in Emacs buffer

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

Inline WPE WebKit browser in Emacs buffer

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

Inline Alacritty terminal in Emacs buffer

GPU Text with Rounded Box Faces

Round corner box face attribute

Highlights

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
Bitcoin (BTC) donation QR code 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)

neomacs (eval-exec/neomacs)

Searching Database…

1.6K ·GitHub
这是什么?NEO Emacs 是用 Rust 重写的 GNU Emacs,配备现代 GPU 显示引擎:约 30 万行的 C 语言核心被内存安全的 Rust 所取代,目标是 100% 兼容 Emacs,性能提升 10 倍。
它是我现有 Emacs 的插件,还是一个要单独安装的独立编辑器?是一个完全独立的程序,不是附加组件:它是 GNU Emacs 的硬分叉,其 Elisp 代码树同步到 emacs-31.1,Lisp 层以下的部分全部用 Rust 重建。你是用它来替代现有的 Emacs。
我怎么把它装到自己的电脑上?从 GitHub Releases 下载安装包:Linux 上有 .deb/.rpm/tarball/AppImage,macOS(Apple Silicon)上有 .dmg 或 .zip,Windows 上有 .exe 安装程序或便携版 .zip。另外还提供 Docker 镜像,也可以用 Cargo 从源码构建。
我需要先安装 Rust 或什么系统库才能运行吗?用预构建的安装包不需要——下载下来就能直接运行。在 Linux 上,编辑器会链接系统的 GStreamer 运行时来播放内嵌视频,解码器插件来自系统;只有从源码构建才需要 Rust 工具链。
现在就能当日常编辑器用,还是还不够成熟?它明确还是一个进行中的项目:难免有粗糙之处、破坏性改动和缺失的功能。macOS 和 Windows 版本是实验性的,像零暂停 GC 和多线程 Elisp 这样的部分也还在完善中。
它只能以图形界面运行,还是也能在终端里用?两种模式都来自同一个程序:可以是 GPU 渲染的图形窗口,也可以通过 neomacs -nw 在终端里运行。TUI 渲染器现在就能用,还在持续打磨。
它需要很强的显卡吗,还是普通笔记本就能跑?它通过 wgpu 渲染,支持 Vulkan、Metal、DirectX 12 或 OpenGL,所以集成显卡就够用——而且在终端模式下完全用不到显卡。
它真的能在 buffer 里显示视频、图片和网页吗?可以——buffer 里可以内嵌 4K 视频、GPU 解码的图片、一个 WPE WebKit 浏览器和一个 GPU 终端,借助 DMA-BUF 零拷贝通道,媒体数据始终留在 GPU 上,主线程不会被阻塞。
我现有的 init.el、软件包和快捷键设置还能继续用吗?这正是项目承诺的目标:要做到 100% 兼容 GNU Emacs,目前已达到约 95%,并且还在不断接近。每个重写的子系统都会与 GNU Emacs 逐项对比作为测试基准,Doom Emacs 等真实配置则充当日常测试环境。
和原版 Emacs 相比,我能自定义到什么程度?更深:GNU Emacs 的可改造性止步于 C 语言显示引擎,而 NEO Emacs 把整个前端都开放给 Elisp——甚至包括用 WGSL 编写的渲染效果和 GPU 着色器。
为什么不直接用 GNU Emacs,而要用 Rust 重写 Emacs?作者热爱 Emacs,希望把它演进成“终极的现代利器”:如今已有 GPU 渲染和纯 Rust 的内存安全核心,真正的多线程 Elisp 和零暂停 GC 则在规划之中。
What are similar projects?neovide, spacemacs, SpaceVim, helix, vim, oni, LunarVim, awesome-neovim
Creator
eval-exec
Size
227 MB
Stars
1.6K
Age
8mo
Commits · 90 Days