New Backend - but only Win 64?

Dear community,

I want to Add another backend for duplicati, but that will only work on Windows 64bit. Will that be a Problem? Is there a Way to Add that backend only to corresponding installations?

Thank you!



What’s the backend?

There isn’t currently a filter on the backend list, so it’s kind of assumed that they work on all systems.

The backend is Storj. I developed a wrapper, but that is currently only available from Win64. What I could do - if I understand the System correctly - is to filter the list of backends after it got collected on Systems other than Win64. But I don’t know if it would build on Linux and MacOS with my dependencies and if the installer would get Problems…

It is possible to make it included only on Windows, the same is done for the tray icon which uses different libraries for each platform.

But I’m curious what’s causing the win64 dependency. As far as I could tell Storj uses a REST API so it should be possible to write in cross compatible way.

Yes, storj offers a REST-API. But then I would have to do many Things on my own (sharding, selecting Farmers, encryption and so on). I know, duplicati does most of These Things on its own - but I want to be sure to use the reference implementation for storj.

My wrapper is based in a Java-library using IKVM (quite complicated, I know - but it’s working) - and therefore I only have a working Win64-DLL currently. Win32 should be possible, but might take a bit longer, though. And I wanted to start with a simple Integration.

Ah, makes sense.

I think it would be worth to strive for a cross compatible implementation, but perhaps it makes sense to start with a simple windows only example for testing?

Maybe I should just try and see. Thank you - just wanted to see if anybody knows what Problems might arose. I’m new with duplicati-development.

1 Like

There should really not be many win32 users out there, but there are quite a few Linux and MacOS users, so they would have a problem using it.

There is no problem in including a backend that only works on one platform IMO. If we want to make it smoother, we can simply delete the backend files when building the individual platform installers (i.e. when building the Win32 MSI, DEB, RPM, and DMG files).

But I was wondering if it would be easier to use a Storj commandline tool instead? We already have such a backend for rclone that simply calls the rclone executable, and I would imagine that this could more easily be a portable approach, if it is too much work to use the REST API.

Yes, I thought about the same - develop a “storj-Service” that can be implemented platform-dependent and that has to be installed Prior to using it from duplicati. Duplicati could the call it via REST or similar and could then only have one backend-communication.

I think I’ll go that way. Thank you!