explaingit

atom-archive/xray

8,420RustAudience · developerComplexity · 4/5Setup · hard

TLDR

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.

Mindmap

mindmap
  root((xray))
    Architecture
      Rust core process
      Electron UI
      Message passing
    Design goals
      Real-time collaboration
      Performance targets
      Package isolation
      Browser version
    Memo sub-project
      Keystroke tracking
      Real-time sync
    Status
      Archived 2018
      Code reference only
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Study the source code to understand how to build an Electron app backed by a Rust process for high performance.

USE CASE 2

Research the keystroke-level change-tracking architecture of the Memo sub-project for building collaborative editing tools.

USE CASE 3

Browse the design goals and timing targets the team set for typing latency, scrolling, and file-open performance.

Tech stack

RustElectronJavaScript

Getting it running

Difficulty · hard Time to first run · 1day+

Project is archived and no longer maintained, there is no install path and no working build target for current systems.

In plain English

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.

Copy-paste prompts

Prompt 1
I'm reading the Xray codebase to learn how it passes messages between a Rust backend process and an Electron frontend. Show me the IPC pattern used.
Prompt 2
Explain how Xray's Memo sub-project tracked changes at the keystroke level for real-time collaboration and how this differs from Git.
Prompt 3
I want to build an Electron app with a Rust core for performance. What architectural patterns from Xray should I borrow?
Prompt 4
What specific performance targets did the Xray team set for typing responsiveness, scrolling speed, and file-open time?
Open on GitHub → Explain another repo

← atom-archive on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.