xray
An experimental next-generation Electron-based text editor
Xray was an experimental code editor built by the Atom team at GitHub using Rust for speed and real-time collaboration, but the project was archived before release and no further development is expected.
Xray was an experimental text editor built by the team behind the Atom editor at GitHub. The goal was to test radical ideas about how a code editor could work, without risking the stability of Atom itself. GitHub ultimately decided not to move the project forward, so the repository is archived. No active development is expected.
The editor was built on Electron, the same technology that powers VS Code and Atom, but with a key difference: all the core application logic was written in Rust rather than JavaScript. The idea was that Rust runs faster by default, handles multiple tasks in parallel more naturally, and keeps memory usage low even on large projects. The visible interface would still use web technologies, but the heavy lifting would happen in a separate Rust process that the UI communicated with over a message-passing system.
Four design goals shaped the project. First, collaboration: the editor was designed from the start for multiple people to work in the same file at the same time, with the interface built to show multiple cursors and the file system abstracted so it could work over a network. Second, performance: the team set specific timing targets for how quickly the editor needed to respond to typing, scrolling, and file opening. Third, extensibility: developers would be able to add significant features through a package system, with packages running on separate threads so a broken package could not slow down the whole editor. Fourth, web compatibility: the plan included a version that could run entirely inside a browser, making it usable on GitHub.com directly.
A sub-project called Memo was under active development in 2018. It was designed as a version control system that tracked changes at the individual keystroke level and could synchronize changes between collaborators in real time, operating independently of the editor itself.
Because the project is archived, there is nothing to install or run. The code remains public for reference.
Where it fits
- Study the source code to understand how to build an Electron app backed by a Rust process for high performance.
- Research the keystroke-level change-tracking architecture of the Memo sub-project for building collaborative editing tools.
- Browse the design goals and timing targets the team set for typing latency, scrolling, and file-open performance.