- cross-posted to:
- rust@programming.dev
- cross-posted to:
- rust@programming.dev
Hey, you probably know about restic and borg for backups. They are pretty mature and very commonly used.
Rustic is a fully compatible reimplementation of restic in Rust and they do seem to have implemented a few improvements over restic. The developer even used to be a contributor on restic.
Is anyone here using it already? It looks super promising but I’d love to hear your opinion!
Q. How do you know an open source project is written in Rust?
A. Don’t worry, they’ll tell you.
Imagine a world where all these rust devs would write new software instead of manically reimplementing existing software in rust…
Imagine a world where we’re all using 30 year old software because it “still kinda works”.
restic is 8 years old though
And? I didn’t mention restic, nor did the person I was replying to. I was under the impression we were both talking about software being rewritten in Rust in general.
Imagine a world where we’re all using 30 year old software because it “still kinda works”.
restic is living proof that is neither 30 years old nor “kinda works”. It also doesn’t suffer from typical memory access problems because it’s not written in C.
Given that this whole post is about restic, this felt relevant to point out. You’re apparently not talking about rewrites in Rust in general, but rather rewrites in Rust of software the likes on GNU and the Linux kernel.
Aren’t most CVEs out of bounds writes/reads?
Rust helps prevent that, so more secure software seems like a good thing
So long as they don’t abuse
unsafe
that is
What is the advantage of using this over restic?
They have a page in the repo describing some advantages https://github.com/rustic-rs/rustic/blob/main/docs/comparison-restic.md
It sounds like they have some nice improvements, but I wonder why they didn’t contribute them back to the original restic project.
I also wouldn’t rely on an immature piece of software to handle backups - you want to avoid as many risk factors as possible with backups, since when you need to restore you really need it to work.
FYI, you formated your link wrong, it should be
[here](https://github.com/rustic-rs/rustic/blob/main/docs/comparison-restic.md)
I can never remember the order and I’m using Wefwef which doesn’t offer markdown insert. Thanks :)
The way I remember the order is that the parentheses around the link would make grammatical sense outside of markdown (the goal of markdown is to still be fully readable even when looking at the raw source).
For example if I were posting on a forum that didn’t have markdown support which one of these would make more sense:
You can find that on this lemmy instance (https://lemmy.world).
You can find that on (this lemmy instance) https://lemmy.world.
Option 2 makes no sense grammatically. Then you just need to use the square brackets (which rarely show up in non-markdown text) to denote the link range.
Alternatively, if you still have a hard time remembering the order, you can use reference-style links which make it even more readable outside of markdown rendered contexts (note that there are no parentheses in this version, nothing to get confused):
[Here is a link][1] and [here is another link][2]. [1]: http://example.org [2]: http://example.com
Looks like the rust-cult is at it again rewriting existing stuff for no gain but pushing rust on others.
A lot of the time, rust rewrites are more for devs, than users. Rust code is just easier to maintain (in the long-run 😉) and harder to make buggy. But some times the apps do just run faster when compiled with Rust.
Is it that much better than Go? Seems like the original restic was written in Go which afaik is pretty similar performance and syntax wise.
Go has its fair share of design problems and is not as memory efficient due to its garbage collector. Also it will probably always be linked to Google in some way.
Use
fd
instead offind
, orrg
instead ofgrep
and tell me there’s no gain. The speed increase alone is astounding, and beyond worth it.Oh shit, will definitely be trying this out. I tend to make wildly overzealous
find
searches
Wow, people in this thread really have strong opinions about other people writing similar programs in different languages. Who cares? Why is more choice a bad thing?
I use restic extensively, and it works really really well… until it breaks. Then there’s next-to-nothing you can do to fix the repo.
Rustic, on the other hand, has lock-less design, and repair options, so I end up using it to fix things. However, it has a number of rough edges: it uses its own wacky config file, its include/exclude options are wildly different and a bit painful, and to use a bunch of repo backends (like S3), you need to install, configure, and use rclone, which is poorly documented by rustic.
Oh great, another project named “rustic”. There’s also a wrapper for Restic called Rustic, also written in Rust. No activity in the repo for 3 years, though.
I liked the config file support in the old Rustic, and seeing the same thing in the new one does at least attract me a bit.
But a Rust rewrite of a software written in Go, a language that is already pretty efficient? I don’t understand why.
What’s the advantage of this over
sudo tar -czvf /backupFile.tar.gz folder/to/backup/ gpg -o backupFile.tar.gz.gpg --symmetric backupFile.tar.gz
Less storage space (since you don’t duplicate the data that has not been changed since the last backup), and ability to check different versions / restore / rollback.
Mostly it comes down to data types, disk space, and restores. Even if you’re doing incremental backups with tar it isn’t as fast, space efficient, or easy to restore, (in most cases) as something like restic, borg, etc…
I have found when you just need something simple that just works everywhere then its hard to beat tar!