Is it possible to obtain a reduced version of the source code, targeting only FTP/S, HTTP/S, SSH, and WebDAV/S destinations?
I’m interested in this, and we could try to maintain that version, of course respecting any changes to these protocols that may occur in the full version and any conditions imposed by the developers of the full version.
In terms of size, each destination adds only a small amount of extra space. The main driver for the size is the bundling of the .NET framework (~60 MiB).
If this is more an administrative thing, we should add the --allowed-backends=ftp,ssh,webdav option, which would prevent using the additional providers.
Alternatively, you can simply delete the backends that you don’t like, after you installed Duplicati, and it will dynamically detect what backends are present.
The reasons aren’t size-based; they’re about preventing the use of other targets and removing configuration options that affect them. All of this without interfering, due to a lack of knowledge of current or future stable version databases or configuration options shared by multiple targets. I’ll test removing targets with the stable version’s source code to see what’s broken. Thanks for your guidance.
I have added a PR that enables you to disable modules from the commandline or the preload.json file:
This is not as strong an enforcement as deleting the libraries, but it is simpler, in that you only need to handle the configuration and can leave the installation clean.
The implementation is a whitelist, so any new modules will automatically be disabled if you supply a limitation.