HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
atom-archive
xray
Rust2018–2021
atom-archive / xray · Archived

xray

An experimental next-generation Electron-based text editor

35Distinct people
40Mentions
1Explicit recommenders
8.4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

An experimental next-generation Electron-based text editor

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

> Indeed, the literature of CRDT does specify a mathematically correct answer. But this does not always line up with what humans would find the most faithful rendering of…

lewisl9029 used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 11:34:28 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year40 dated mentions

Observed mentions: 2018-01-16 20:00:06 UTC to 2021-12-15 17:24:16 UTC.

05101520252018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 24 mentions; 6 submissions, 18 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 9 mentions; 2 submissions, 7 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2021

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC24618
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC927
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC303
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC404

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Attention: GitHub has decided not to move forward with any aspect of this project. We'll archive the repository in case anybody finds value here, but we don't expect to actively work on this in the foreseeable future. Thanks to everyone for their interest and support. Xray Xray is an experimental Electron-based text editor informed by what we've learned in the four years since the launch of Atom. In the short term, this project is a testbed for rapidly iterating on several radical ideas without risking the stability of Atom. The longer term future of the code in this repository will become clearer after a few months of progress. For now, our primary goal is to iterate rapidly and learn as much as possible. Q3 2018 Focus We're currently focused on a sub-project of Xray called Memo, which will serve as the foundation of Xray but also be available as a standalone tool. Memo is an operation-based version control system that tracks changes at the level of individual keystrokes and synchronizes branches in real time. Updates October 2, 2018 September 14, 2018 August 28, 2018 August 21, 2018 July 31, 2018 July 23, 2018 July 16, 2018 July 10, 2018 Archives Foundational priorities Our goal is to build a cross-platform text editor that is designed from the beginning around the following foundational priorities: Collaboration Xray makes it as easy to code together as it is to code alone. We design features for collaborative use from the beginning. Editors and other relevant UI elements are designed to be occupied by multiple users. Interactions with the file system and other resources such as subprocesses are abstracted to work over network connections. High performance Xray feels lightweight and responsive. We design our features to be responsive from the beginning. We reliably provide visual feedback within the latency windows suggested by the RAIL performance model. For all interactions, we shoot for the following targets on the hardware of our median user: Duration Action 8ms Scrolling, animations, and fine-grained interactions such as typing or cursor movement. 50ms Coarse-grained interactions such as opening a file or initiating a search. If we can't complete the action within this window, we should show a progress bar. 150ms Opening an application window. We are careful to maximize throughput of batch operations such as project-wide search. Memory consumption is kept within a low constant factor of the size of the project and open buffer set, but we trade memory for speed and extensibility so long as memory requirements are reasonable. Extensibility Xray gives developers control over their own tools. We expose convenient and powerful APIs to enable users to add non-trivial functionality to the application. We balance the power of our APIs with the ability to ensure the responsiveness, stability, and security of the application as a whole. We avoid leaking implementation details and use versioning where possible to enable a sustained rapid development without destabilizing the package ecosystem. Web compatibility Editing on GitHub feels like editing in Xray. We want to provide a full-featured editor experience that can be used from within a browser. This will ultimately help us provide a more unified experience between GitHub.com and Xray and give us a stronger base of stakeholders in the core editing technology. Architecture Martin Fowler defines software architecture as those decisions which are both important and hard to change. Since these decisions are hard to change, we need to be sure that our foundational priorities are well-served by these decisions. The UI is built with web technology Web tech adds a lot of overhead, which detracts from our top priority of high-performance. However, web standards are also the best approach that we know of to deliver a cross-platform, extensible user interface. Atom proved that developers want to add non-trivial UI elements to their editor, and we still see web technologies as the most viable way to offer them that ability. The fundamental question is whether we can gain the web's benefits for extensibility while still meeting our desired performance goals. Our hypothesis is that it's possible–with the right architecture. Core application logic is written in Rust While the UI will be web-based, the core of the application is implemented in a server process written in Rust. We place as much logic as possible in a library crate located in /xray_core, then expose this logic as a server when running Xray on the desktop (/xray_server) and a web-assembly library running on a worker thread when running Xray in the browser (/xray_wasm). We communicate between the UI and the back end process via JSON RPC. All of the core application code other than the view logic should be written in Rust. This will ensure that it has a minimal footprint to load and execute, and Rust's robust type system will help us maintain it more efficiently than dynamically typed code. A language that is fundamentally designed for multi-threading will also make it easier to exploit parallelism whenever the need arises, whereas JavaScript's single-threaded nature makes parallelism awkward and challenging. Fundamentally, we want to spend our time writing in a language that is fast by default. It's true that it's possible to write slow Rust, and also possible to write fast JavaScript. It's also true that it's much harder to write slow Rust than it is to write slow JavaScript. By spending fewer resources on the implementation of the platform itself, we'll make more resources available to run package code. I/O will be centralized in the server The server will serialize buffer loads and saves on a per-path basis, and maintains a persistent database of CRDT operations for each file. As edits are performed in windows, they will be streamed to the host process to be stored and echoed out to any other windows with the same open buffer. This will enable unsaved changes to always b
Read the full README on GitHub

What Hacker News says

24 sources
> I can't speak to Discord or Atom. Those ones make less sense to me, but there might be a reason there, too. Electron exists because of Atom (yes, in that order). Electron was previously called Atom Shell[1] because it was created specifically to house Atom, although they mention it wasn’t created just for that. If there’s one app that has a reason to be built on Electron, it’s Atom, because it was an experiment to see how viable that solution would be. But even they understand that solution wasn’t the best because it’s slow, so they’re experimenting with a model where the application logic is written in Rust and only the UI is built with web technologies[2]. [1]: https://electronjs.org/blog/electron [2]: https://github.com/atom/xray
In It is fast or it is wrong
Also in this space, some Atom devs are working on a new editor/engine in Rust and have recently shifted focus to CRDT as a way to get collaborative editing and advanced SCM-like scenarios. The editor is called 'xray' and the CRDT tech is Eon. They have some info here and you can find more in the repo/branches. https://github.com/atom/xray/blob/master/docs/updates/2018_0... If you're into the client/server model of Xi, xray is targetting the same, including an in-browser experience connecting to a remote backed. Similarly, there is Theia-IDE which actually seems the most advanced in terms of a functional in-browser editor with a client/server model. I think these tools are going to enable entire new generations of programmers on super low end hardware where their editor services and toolchains are running in a remote DC. There are others i
Read the rest
n this space with similar tech, but most seem focused on very specific niches and use cases. If there are other softwares that hit the collaborative editing, CRDT, and in-browser experience points, I'd love to hear about them.
In The Xi Text Engine CRDT
For the last several months I've been in a perpetual state of switching back and forth between Atom and VS Code. So far, I find myself continually frustrated. Undoubtedly, Atom is slow to start up in a new folder. But in exchange for that initial speed, I get: * Universally better keybinds. From better split editor(even using the newest VS Code Insiders, which has new split editing binds/tools), to better Vim integration(having to spam j or k to go up/down lines), Atom keybinds(whether official or from the community) seem to just work intelligently. * Teletype in VS Code is just rough.(CAVEAT: I've not used Atom's, so it may be just as bad.) From it breaking many keybinds for as long as you have your experience shared(using vim `o` to newline and indent is genuinely a 50/50 as to whether it works, and there's a lot more where that came fr
Read the rest
om), to difficulty for the sharer to track the people they've shared with, to the inbuilt console just failing to let one of my sharees to run my tests. * The number and usefulness of addons in the VS Code community seems to be just consistently a step below. ElixirLS[1] is official on VS Code, yet breaks fairly often- yet never does on Atom, despite it being merely a test! There's no alternative for Advanced Open File[2]. I understand this is an ecosystem problem and that I can contribute to fixing it, but with it being so frequent I often get frustrated. Furthermore, I really want to know the future of these two projects, plus atom/xray[3]. Because if Atom can get VSCode's speed, I don't see a point to Atom. Alternatively, if VSCode could just get better along the edges, that would similarly be a huge improvement. Both are so fantastic and so close to my ideal(at this point, I have more language issues than editor issues), so both being under the same roof I don't see as inherently negative- but investing in either also seems foolhardy. ------------------ 1. https://github.com/JakeBecker/elixir-ls 2. https://atom.io/packages/advanced-open-file 3. https://github.com/atom/xray
In VS Code June 2018
BTW, the long term plan to remedy the Atom performance seems to be this: https://github.com/atom/xray Just in case people skimming Atom news don't think they are acknowledging the problem. Still Electron though, but onlt for the view. Much of the "controller" moved to Rust, including writing it from the ground up to take advantage of safe, easier parallelism from Rust. Text will also be rendered with WebGL, so hardware accelerated. All in all, looks pretty ambitious! It seems like it will take until 2019 for even a tech preview though.
In Atom 1.26

Showing the 15 most recent of 24 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.