EDist is a distributed, concurrent, text-editor. It exists for practice and documentation: practising how to write and test distributed systems, and documenting the process.
A set of articles, documenting this project's purpose, design and implemenation, is available starting with this introduction.
Getting the code
$ fossil clone https://fossil.wellquite.org/edist $ cd edist
If you have no wish to install or use fossil, you can directly grab a tarball:
$ curl https://fossil.wellquite.org/edist/tarball?name=edist | tar xz $ cd edist
Building and running
If you happen to be a nix user then, once you
cd edist you should be able to run
nix-shell and that should set
up all the dependencies. If you are also a user of
direnv then you should be able to run
allow once, and then the
nix shell should automatically run
The dependencies are not huge, and should be reasonably platform agnostic:
These need to be installed on your computer and made available on your PATH in some way.
Once you have the dependencies installed:
.../edist$ cd http/browser .../browser$ npm install
With that done, the usual build and run it command is:
.../edist$ make && ./edist -db /tmp/edist
The created binary
edist command is completely self-contained (well,
ok, it's not a a static binary, but it doesn't depend on much). It has
all the browser assets embedded within it. This makes it easy to move
it about and deploy it, but it also means that if you change any of
the browser assets (in
http/browser/src/) then you have to rebuild
the binary. Currently, that takes less than 5 seconds, so it's not
something I feel is a problem.
With the binary running, in your browser head to http://localhost:8765/
I've only been able to test on Chrome and Firefox. It would seem there might be some issues with Safari, but I don't have a Mac so I can't test it, so Safari and Edge (and IE) are unsupported at this time.