https://github.com/emacs-ng/emacs-ng Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} emacs-ng / emacs-ng Public * Notifications * Fork 66 * Star 1.5k A new approach to Emacs - Including TypeScript, Threading, Async I/O, and WebRender. emacs-ng.github.io/emacs-ng/ License GPL-3.0 license 1.5k stars 66 forks Activity Star Notifications * Code * Issues 77 * Pull requests 5 * Discussions * Actions * Projects 0 * Security * Insights Additional navigation options * Code * Issues * Pull requests * Discussions * Actions * Projects * Security * Insights emacs-ng/emacs-ng This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 8 branches 50 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/e] Use Git or checkout with SVN using the web URL. [gh repo clone emacs-] Work fast with our official CLI. Learn more about the CLI. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @GTrunSec GTrunSec update Nix CI ... eb01913 Nov 17, 2023 update Nix CI eb01913 Git stats * 169,800 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github update Nix CI November 17, 2023 03:37 admin Merge remote-tracking branch 'gnu/master' into master September 27, 2023 16:14 build-aux ; Grammar fixes ("allow to" et al) September 17, 2023 16:49 cross Fix bootstrap-clean in the cross directory on USG August 13, 2023 09:45 doc Update Android port September 25, 2023 13:01 docker Update remacs build files (#255) May 20, 2021 22:51 docs docs: flickering with glutin/tao on linux. March 10, 2023 11:54 etc Merge remote-tracking branch 'gnu/master' into master September 27, 2023 16:14 exec Correct build on systems without PAGE_MASK September 18, 2023 14:16 images [docs] Fix logo image March 13, 2021 11:22 java Update Android port September 25, 2023 13:01 leim Allow inserting #x6A58 using chinese-ctlaub IM April 25, 2023 17:39 lib-src Merge remote-tracking branch 'gnu/master' into master September 27, 2023 16:14 lib Update from Gnulib by running admin/merge-gnulib August 15, 2023 15:55 lisp Merge remote-tracking branch 'gnu/master' into master September 27, 2023 16:14 lwlib Fix dependency bug when building lwlib January 13, 2023 23:39 m4 Don't use // substitution in `ndk_resolve_import_module' August 15, 2023 14:19 modules ; Add 2023 to copyright years. January 1, 2023 05:31 msdos Fix the MS-DOS build August 13, 2023 11:23 nextstep Merge remote-tracking branch 'gnu/master' into master September 27, 2023 16:14 nix nix: Update emacsng (#434) April 6, 2022 18:20 nt ; Grammar fixes ("allow to" et al) September 17, 2023 16:49 oldXMenu ; Add 2023 to copyright years. January 1, 2023 05:31 rust_src Update surfman September 29, 2023 14:54 src Merge remote-tracking branch 'gnu/master' into master September 27, 2023 16:14 test Merge remote-tracking branch 'gnu/master' into master September 27, 2023 16:14 .clang-format ; Fix typo in .clang-format (Bug#59768) December 2, 2022 13:52 .clangd ; Add .clangd configuration file August 28, 2023 16:39 .dir-locals.el ; Add another noise macro August 22, 2023 17:53 .dockerignore Add Dockerfile to build for Debian May 6, 2021 10:15 .envrc Revert .envrc back to nix February 11, 2023 10:00 .gitattributes ; Fix issues running gitmerge August 21, 2023 18:22 .gitignore Merge remote-tracking branch 'gnu/master' into master September 27, 2023 16:14 .gitlab-ci.yml ; Add 2023 to copyright years. January 1, 2023 05:31 .mailmap ; * .mailmap: Update some entries. September 11, 2023 02:30 BUGS Prefer HTTPS to FTP and HTTP in documentation September 13, 2017 15:54 CONTRIBUTE Merge from origin/emacs-29 September 23, 2023 09:41 COPYING Merge from Gnulib October 1, 2017 18:31 Cargo.in Update surfman September 29, 2023 14:54 Cargo.lock Update surfman September 29, 2023 14:54 ChangeLog.1 Fix all my attributions to be correct and consistent... August 8, 2023 20:07 ChangeLog.2 ; Fix typos February 12, 2023 03:23 ChangeLog.3 Merge from origin/emacs-29 February 21, 2023 10:27 ChangeLog.4 ; Prefer HTTPS to HTTP in more links August 2, 2023 23:32 ChangeLog.android ; * ChangeLog.android: Minor formatting correction. September 7, 2023 02:32 GNUmakefile ; Add 2023 to copyright years. January 1, 2023 05:31 INSTALL Merge from origin/emacs-29 September 16, 2023 07:36 INSTALL.REPO Prefer https: to git: URIs February 4, 2023 15:14 Makefile.in Merge remote-tracking branch 'gnu/master' into master September 27, 2023 16:14 README ; * README: Describe `exec' directory. May 1, 2023 14:25 README.md Merge remote-tracking branch 'gnu/master' into master September 27, 2023 16:14 autogen.sh Don't depend on Automake to generate exec/aclocal.m4 August 9, 2023 08:28 build_emacs_ng.sh Add CFLAGS -O2 -g to release build script. September 6, 2021 00:21 config.bat ; Add 2023 to copyright years. January 1, 2023 05:31 configure.ac Merge remote-tracking branch 'gnu/master' into master September 27, 2023 16:14 default.nix nix: Update emacsng (#434) April 6, 2022 18:20 docker-compose.yml add rust facilities September 22, 2020 09:35 flake.lock nix: Update nix build February 20, 2023 09:16 flake.nix nix: add emacsngWRPgtk March 1, 2023 19:42 generate-docs.sh remove comment from generate docs script May 6, 2021 23:45 gnulib.mk.in add rust facilities September 22, 2020 09:35 make-dist * make-dist (possibly_non_vc_files): Add Android-specific files. May 18, 2023 19:44 mkdocs.yml introduce wiki section for built-in elisp packages October 6, 2021 21:29 rust-toolchain nix: Update nix build February 20, 2023 09:16 rustfmt.toml build: Rework build setup February 9, 2023 21:15 shell.nix nix: Update emacsng (#434) April 6, 2022 18:20 View code [ ] emacs-ng Intro Motivation Why Emacs-ng Contributing Features Webrender Dynamic modules Deno/Javascript Performance README.md [logo] [6874747073] [badge] [6874747073] emacs-ng A new approach to Emacs --------------------------------------------------------------------- homepage * Deno/Javascript * webrender * ng-module * handbook * faq --------------------------------------------------------------------- Intro emacs-ng is based off of the master branch of emacs, and regularly merges using Github Actions(Runs at 00:00, only on Saturday). The last merged commit is eef32d13da5 (09 27 2023). Motivation The goal of this fork is to explore new development approaches. To accomplish this, we aim to maintain an inclusive and innovative environment. The project is not about replacing elisp with a more popular language like Javascript. We just want to make emacs more approachable for people who don't like lisp as much as we do. Contributions are welcome from anyone and we are always happy to invite new people to the project. We are open towards interesting ideas to make emacs better. Why Emacs-ng This project should be considered an additive native layer over emacs, bringing features like Deno's Javascript and Async I/O environment, Mozilla's Webrender, and other features in development. emacs-ng's approach is to utilize multiple new development approaches and tools to bring Emacs to the next level. It is maintained by a team that loves Emacs and everything it stands for - being totally introspectable, with a fully customizable and free development environment. We want Emacs to be a editor 40+ years from now that has the flexibility and design to keep up with progressive technology. Contributing Emacs combined with the rust ecosystem brings a lot of possibilities. If you have any idea for a new feature, just open an issue before starting work so we can give you some feedback. We try to maintain a list of "new contributor" friendly issues tagged with "good first issue". You should also take a look at our handbook. Features Webrender WebRender is a GPU-based 2D rendering engine written in Rust from Mozilla. Firefox, the research web browser Servo, and other GUI frameworks draw with it. emacs-ng use it as a new experimental graphic backend to leverage GPU hardware. Dynamic modules Warning This feature is currently unmaintained Allow dynamic modules to access more of Emacs's internals. Dynamic modules can be written to take advantage of these extra functionalities when they are available, while at the same time being fully compatible with vanilla Emacs. Deno/Javascript Note This feature is currently outdated and been disabled. However there is this to bring it back. One of emacs-ng's primary features is integrating the Deno Runtime, which allows execution of JavaScript and Typescript within Emacs. The details of that feature are listed below, however many users would ask themselves WHY JAVASCRIPT? JavaScript is an extremely dynamic language that allows for a user to inspect and control their scripting environment. The key to note is that bringing in Deno isn't JUST JavaScript - it's an ecosystem of powerful tools and approaches that Emacs just doesn't have currently. * TypeScript offers an extremely flexible typing system, that allows to user to have compile time control of their scripting, with the flexibility of types "getting out of the way" when not needed. * Deno uses Google's v8 JavaScript engine, which features an extremely powerful JIT and world-class garbage collector. * Usage of modern Async I/O utilizing Rust's Tokio library. * Emacs-ng has WebWorker support, meaning that multiple JavaScript engines can be running in parallel within the editor. The only restriction is that only the 'main' JS Engine can directly call lisp functions. * Emacs-ng also has WebAssembly support - compile your C module as WebAsm and distribute it to the world. Don't worry about packaging shared libraries or changing module interfaces, everything can be handled and customized by you the user, at the scripting layer. No need to be dependent on native implementation details. Performance v8's world-class JIT offers the potential for large performance gains. Async I/O from Deno, WebWorkers, and WebAsm, gives you the tools to make Emacs a smoother and faster experience without having to install additional tools to launch as background processes or worry about shared library versions. About A new approach to Emacs - Including TypeScript, Threading, Async I/O, and WebRender. emacs-ng.github.io/emacs-ng/ Topics javascript rust emacs async gpu webassembly wasm gpu-acceleration webworkers deno webrender emacs-ng Resources Readme License GPL-3.0 license Activity Stars 1.5k stars Watchers 29 watching Forks 66 forks Report repository Releases 50 tags Packages 0 No packages published Contributors 921 * @rgmorris * @Eli-Zaretskii * @monnier * @eggert * @lektu * @larsmagne * @loveshack * @albinus * @link0ff * @snogglethorpe * @skangas + 910 contributors Languages * Emacs Lisp 54.9% * Roff 24.1% * C 16.5% * M4 0.7% * Objective-C 0.6% * TeX 0.5% * Other 2.7% Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time.