Ox is an advanced text editor with built-in IDE-like functionality developed by a UK programmer known by the nickname "Curlpipe".
It was written in Rust using ANSI escape sequences. The author believes that Ox helps developers code by providing various tools to speed up and facilitate programming and is a totally lightweight alternative, as unlike editors like "VS Code and JetBrains" Ox consumes fewer resources.
The author advises that this is, at the moment, just a personal project and you're not ready to replace your existing tools yet. Ox works in terminal and works on platforms like Linux and macOS, but it doesn't work directly on Windows (it works if you use WSL) due to lack of a good command line.
“There are many text editors and each of them has its flaws. I hope to have a text editor that overcomes many burdens and problems, ”said the developer.
According to Curlpipe, Ox is "super" minimal and aims to use as few dependencies as possible, resulting in fast build time and low risk of breakage.
It is built with Rust, Termion (a Rust library), Unicode-rs, Clap (a command line argument parser), Regex, Ron (a simple configuration format similar to Rust syntax), Serde (a framework for serialize and deserialize Rust data structures efficiently and generically) and Shellexpand (a single dependency library that allows shell-like expansions to be performed on strings).
Furthermore, Curlpipe added that Ox is not based on any other editor and was built from scratch without any foundation. In the project's GitHub repository, we can see that Ox takes the features of some of the most popular editors, especially on Linux, thus seeking to get the best of all worlds. Below is the list of text editors from which the author has stolen one or more concepts:
- vm: provides a plugin system to add functionality as it is very minimal and only provides basic text editing functionality by default. It is complete and has its own programming language to configure and write plugins. It has a fast learning curve because it is a "modal" text editor, with special modes for editing text. According to Curlpipe, Ox is easier to use than Vim because it has no modes in which the keyboard is reoriented, but it takes up the idea of being a keyboard-only editor and being able to act as an IDE later.
- Elder brother: an easy to learn text editor with intuitive keyboard shortcuts like Ctrl + S. Ox took the idea of keyboard shortcuts from this editor, they are easy to remember.
Micro - This is a plug-in system that is programmed with the Lua programming language. According to the Ox developer, it was Micro who gave him the idea to add mouse functionality and other features;
- Emacs: Emacs is still actively used today due to its freedom to modify and change the source code. So, according to Curlpipe, Ox took the idea of customization and extensibility from Emacs and created a configuration system where you can change the editor's colors and appearance.
- Xi: a text editor also written in Rust, but it is purely a backend at the moment. Curlpipe said that it decided to make Ox both a front-end and a back-end, as Xi has many front-ends, but most of them are fragmented and lack many features.
- Kyro: is a text editor written in Rust that adds features like Unicode support, better color matching, and little things like resizing. Ox took Kiro's ideas for improvement, but implemented them differently. Kiro's source code also seems quite advanced in some areas, Curlpipe preferred to keep Ox as simple as possible.