~welt/murse

A faster, lightweight alternative implemention of ofatomic
Add os.signal to signals to listen for.

refs

master
browse  log 

clone

read-only
https://git.sr.ht/~welt/murse
read/write
git@git.sr.ht:~welt/murse

You can also use your local clone with git send-email.

This program is a near reimplementation of ofatomic, by int. It
includes new (non-)features, less bugs, and speedier downloads. I
created this because if you know me, you know I hate deploying Python.
Additionally ofatomic makes some poor design decisions that makes
downloads slow and unreliable. Because this is a reimplementation it's
shares limitations with ofatomic (such as using a slow hash for
updates/verification). One of the things I want to do is rewrite the
backend to get around these limitations.

FEATURES:

Updates:
Updating is much quicker as we only download the different files
between your currently installed revision and the latest one

Lightweight and fast:
Since this is written in a compiled, lower level language, murse is
much faster than the Python implementation. It's been designed to be
quicker too, adjustments have been made that make it significantly
speedier.

According to my benchmarks, murse took about half the time to install
Open Fortress that ofatomic did. I ran both of these with eight threads
on a Ryzen 2700x with 16GB of RAM. I used the coreutils time command to
measure these. No other programs were running on the disk.

Although, ofatomic has an unfair advantage, because it crashed with
an error extremely close to the end (as in a hundred megs off).

"real" is the actual real world time it took.

ofatomic:
real    16m15.630s
user    1m32.739s
sys     0m22.652s

murse:
real    8m22.129s
user    1m28.769s
sys     0m33.338s

Cross-platform:
Of course, we have the usual suspects (Windows, Linux) but we also
support other operating systems, like FreeBSD. Hypothetically this will
run anywhere Go can. Although I'm not sure why you would want this
on NetBSD or something.

Static builds:
This program uses pure-Go libraries. You can build purely static builds,
which means that deploying is simply a matter of running the binary. No
more Python and Pip annoyances!

Compatability:
We try to include flags such that murse is backwards compatible with
scripts for ofatomic. There are some dummy flags though, because we
handle things differently.

INSTALLATION:

Since this is pretty new still, we don't have binaries. However, you can
easilly install this if you have Go installed:

go get -u spiderden.net/go/murse

Remember to add GOBIN to your path.

This is still very much early (as in POC/pre-alpha). Stability,
reliability, and more is coming. Don't use this in production unless you
know what you're doing.

CONTRIBUTING/ISSUES:

If you want to submit a patch, feel free to do so at our mailing list.
If you're unfamiliar with email development, see this:
https://git-send-email.io/

https://lists.sr.ht/~welt/murse

If you want to report issues, feel free to submit a bug to the bug
tracker. If you're unfamiliar with how SourceHut works, you send an
email to submit bugs/tickets.

https://todo.sr.ht/~welt/murse

LICENSE:
Read the COPYING file.