Proton
Empowering you to choose a better internet where privacy is the default. Protect yourself online with Proton Mail, Proton VPN, Proton Calendar, Proton Drive. Proton Pass and SimpleLogin.
Proton Mail is the world's largest secure email provider. Swiss, end-to-end encrypted, private, and free.
Proton VPN is the world’s only open-source, publicly audited, unlimited and free VPN. Swiss-based, no-ads, and no-logs.
Proton Calendar is the world's first end-to-end encrypted calendar that allows you to keep your life private.
Proton Drive is a free end-to-end encrypted cloud storage that allows you to securely backup and share your files. It's open source, publicly audited, and Swiss-based.
Proton Pass Proton Pass is a free and open-source password manager which brings a higher level of security with rigorous end-to-end encryption of all data (including usernames, URLs, notes, and more) and email alias support.
SimpleLogin lets you send and receive emails anonymously via easily-generated unique email aliases.
view the rest of the comments
@_Atlas_)@lemmy.world @Papanca
To fork what? The Windows or macOS Proton Drive and create a Linux version?
I would expect GUI interface is the least of the problems; that's most likely Qt based across all platforms.
One step up in the difficulty level is to implement the file synchronisation right. This would most likely need to be based on macOS, as that has a file system which shares more features to most Linux file systems. However, Linux supports many file systems and there are lots of corner cases to watch out for here (extended attributes). A synchronisation should ideally also synchronise all the meta-data about files, to ensure this is restored correctly on a different host later on.
And the most difficult and most different aspect is the "access on-demand". Here files are only downloaded from Drive as they are accessed. It's like a remote file system mounted locally. From the user experience, it looks like an "external harddrive", but it accesses data stored remotely. There are many ways to do this; an own kernel module or FUSE are the most common ways. FUSE is "simplest" and quite common - but might not give the best performance in many cases. A dedicated kernel module is tricky to distribute as they are hard-bound to the running kernel version. When you multiply those efforts to the Linux distributions available and the various kernel versions each distribution ships - it gets hard to get right. DKMS based distribution is more likely the best approach, but even that has challenges (Secure Boot system requires setting up signing keys, etc).
The difficult part is most likely not the UI aspect, but the "low level" code actually doing the file synchronisation and remote file access. That is very different between each platform.