emuell / restic-browser

A GUI to browse and restore restic backup repositories.
MIT License
711 stars 22 forks source link

Make Rustic Version #75

Open durcom2 opened 1 year ago

durcom2 commented 1 year ago

Request for a version of Restic-browser that works with Rustic.

Rustic has several features (restore --delete for example) that restic should have but doesn't for some reason. Rustic also does not have a GUI restore just like Restic so it would be nice if there could be a "Rustic-Browser".

emuell commented 1 year ago

Using rustic instead of restic should be possible to test now via: https://github.com/emuell/restic-browser/pull/77

I'm actually also thinking about replacing the go based wails backend with rust tauri , as I'm very uncomfortable with the go language. It's great, but just not my thing. It always takes me ages to do anything in go, whereas I'm pretty fluid in rust.

Another advantage would be to use Rustic as a library within Tauri. Rustic does not allow you to use it as a library: https://github.com/restic/restic/issues/1089

Rustic, on the other hand, does: https://github.com/rustic-rs/rustic_core

This would avoid all that messy PATH stuff to locate the rustic binary, and also allow the browser to interact with the repository more efficiently.

durcom2 commented 1 year ago

Great. I'll give it a try. Now that you have added support for one commandline argument, shouldn't be too hard to add more so we don't have to mess with environment variables??? aka #34 etc... Most important ones being repository location and password file location

durcom2 commented 1 year ago

I thought that this would give me what I was looking for, but on second thought I don't think so. Most important feature of rustic to me is the rustic restore with --delete option. I think Restic-Browser would need to somehow support that for restic-browser restore function There are also a few additional options of rustic that are NOT available with restic. Actually looks like a bit more work to do this than I thought...Might be easier to have a completely different version of restic-browser for rustic. See: https://github.com/rustic-rs/rustic/discussions/899 for rustic developer's comments on using the rustic_core library Hope you can do this!

emuell commented 1 year ago

Just had a quick try with rustic. Rustic uses the env variable prefix RUSTIC_ instead of RESTIC_. Also it returns a different snapshot list JSON via rustic ls --json than restic.

So rustic is not supported, is not a quick replacement for now...

durcom2 commented 1 year ago

Hope you can do this sometime in the future.

aawsome commented 1 year ago

I'm actually also thinking about replacing the go based wails backend with rust tauri , as I'm very uncomfortable with the go language. It's great, but just not my thing. It always takes me ages to do anything in go, whereas I'm pretty fluid in rust. Rustic, on the other hand, does: https://github.com/rustic-rs/rustic_core

If you plan to build a tauri app using rustic_core, please let me know! And please don't hesitate to ask any questions you have regarding rustic_core or if you need a feature which is not yet implemented!

emuell commented 1 year ago

@aawsomec There is no support for s3/b2 in rustic ATM, only rclone, is that correct?

That would unfortunately be quite a functional step backwards for the rustic browser GUI, so I'll wait until most of the backends are implemented in rustic.

emuell commented 1 year ago

On a second though, it might not be too hard to add a new "backend" switch with [external restic binary, rustic] options to the GUI, so people can choose if they want to use the restic binary or the rustic lib as their backend.

Each backend would then have a different set of supported location types (local, rclone, s3...).

I'll give this a try when I have some free time, but can't promise anything.

aawsome commented 1 year ago

I am pretty sure that once rustic natively supports S3 and B2, the repository syntax will be analog to the restic one! However, it could take some time until the support is finished. As rclone works there is an easy workaround, so it is very low priority for me and very much depends on other users' contributions...

But I would appreciate to see a GUI using rustic_core - and except the supported repositories, everything else should be possilbe with rustic_core (plus some extra features like support for cold storages, lockfree operations, ... - but I can understand if you won't support them in the first run ;-) )

nickchomey commented 2 months ago

I'd also love to see this. Rustic is much faster, featureful and its devs are more responsive and active.