Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A new approach to Emacs - Including TypeScript, Threading, Async I/O, and WebRender.

License

NotificationsYou must be signed in to change notification settings

emacs-ng/emacs-ng

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

emacs-ng

A new approach to Emacs


homepageDeno/Javascriptwebrenderng-modulehandbookfaq


Intro

emacs-ng is based off of themaster branch of emacs, and regularlymerges using Github Actions(Runs at 00:00, only on Saturday).

The last merged commit is35d3927859 (01 26 2025).

Motivation

The goal of this fork is to explore new development approaches. Toaccomplish this, we aim to maintain an inclusive and innovativeenvironment. The project is not about replacing elisp with a morepopular language like Javascript. We just want to make emacs moreapproachable for people who don't like lisp as much as we do.

Contributions are welcome from anyone and we are always happy toinvite new people to the project. We are open towards interestingideas 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'sapproach is to utilize multiple new development approaches and toolsto bring Emacs to the next level. It is maintained by a team thatloves Emacs and everything it stands for - being totallyintrospectable, with a fully customizable and free developmentenvironment. We want Emacs to be a editor 40+ years from now that hasthe flexibility and design to keep up with progressive technology.

Contributing

Emacs combined with the rust ecosystem brings a lot ofpossibilities. If you have any idea for a new feature, just open anissue before starting work so we can give you some feedback.

We try to maintain a list of "new contributor" friendly issues taggedwith "good first issue". You should also take a look at ourhandbook.

Features

Webrender

WebRender is a GPU-based 2Drendering engine written in Rust from Mozilla. Firefox, the researchweb browser Servo, and other GUI frameworks draw with it. emacs-ng useit as a new experimental graphic backend to leverage GPU hardware.

Dynamic modules

WarningThis feature is currently unmaintained

Allow dynamic modules to accessmore of Emacs's internals. Dynamicmodules can be written to take advantage of these extrafunctionalities when they are available, while at the same time beingfully compatible with vanilla Emacs.

Deno/Javascript

NoteThis feature is currently outdated and been disabled. However there isthis to bring it back.

One of emacs-ng's primary features is integrating theDenoRuntime, which allows execution of JavaScript andTypescript within Emacs. The details of that feature are listed below,however many users would ask themselvesWHY JAVASCRIPT? JavaScriptis an extremely dynamic language that allows for a user to inspect andcontrol their scripting environment. The key to note is that bringingin Deno isn't JUST JavaScript - it's an ecosystem of powerful toolsand approaches that Emacs just doesn't have currently.

  • TypeScript offers an extremely flexible typing system, that allowsto user to have compile time control of their scripting, with theflexibility of types "getting out of the way" when not needed.
  • Deno uses Google's v8 JavaScript engine, which features an extremelypowerful 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 JavaScriptengines can be running in parallel within the editor. The onlyrestriction is that only the 'main' JS Engine can directly call lispfunctions.
  • Emacs-ng also has WebAssembly support - compile your C module asWebAsm and distribute it to the world. Don't worry about packagingshared libraries or changing module interfaces, everything can behandled and customized by you the user, at the scripting layer. Noneed to be dependent on native implementation details.

Performance

v8's world-class JIT offers the potential for large performancegains. Async I/O from Deno, WebWorkers, and WebAsm, gives you thetools to make Emacs a smoother and faster experience without having toinstall additional tools to launch as background processes or worryabout shared library versions.


[8]ページ先頭

©2009-2025 Movatter.jp