A text editor for very large files
Go to file
Andrew S. Rightenburg 9c2eafde4e
Typo
2024-02-04 01:27:15 +08:00
cli Makefile now automatically updates the program_version variable before compilation based on the latest debian/changelog entry, since I always forget to update that variable 2023-04-10 01:17:05 -04:00
debian Updated changelog 2023-09-09 09:59:04 +08:00
edit No longer using namespace std by default 2023-10-05 11:27:39 +08:00
gui Updated directory names 2023-03-08 18:52:02 -05:00
read No longer using namespace std by default 2023-10-05 11:15:51 +08:00
shared Typo 2024-02-04 01:27:15 +08:00
LICENSE Initial commit 2023-03-07 18:04:00 +00:00
README.md Updated readme 2023-08-24 11:13:26 -04:00
ROADMAP Edited ROADMAP 2023-08-18 02:02:41 -04:00
makefile Support for building outside of Debian 2024-02-04 01:24:49 +08:00

README.md

polonius

A uniquely memory-efficient and modular text editor

Therefore, since brevity is the soul of wit

And tediousness the limbs and outward flourishes,

I will be brief.

Hamlet, Act II, Scene II

About

Polonius can be used to edit files of any size (up to just over 8 million terabytes) on systems with as little as only a few kilobytes of available memory.

In order to achieve this, it never loads any more data into RAM than is currently being used. All that we have to keep in memory is the part of the file that's currently being displayed, plus a list of the changes the user wants to make.

Most text editors function by:

  • (1) loading the entire contents of a file into RAM,
  • (2) making changes to that portion of RAM,
  • and then (3) writing that portion of RAM back to the disk.

There's nothing wrong with this method -- but it does limit you to how much you can load into RAM at any one time. Try editing a 100GB file in a normal text editor!

Polonius is made up of separate binary modules:

  • The "reader", which outputs a selected portion of the contents of a file
  • The "editor", which interprets editing instructions (replace, insert, and remove) and makes the requested changes to the file
  • And the interactive UI, which ties together the functionality of the other modules.

See the wiki for full documentation. Manual pages are also available in the Debian packages.

Development Progress

Development is done on Debian GNU/Linux. Builds are also tested on OpenBSD. Releases will be provided for amd64, i386, and arm64 architectures.

polonius-reader:

100%

polonius-editor:

100%

CLI (polonius):

5%

GUI (polonius-gui):

0%