Skip to content
HN On Hacker News ↗

proton-drive-linux-fs

▲ 122 points • 46 comments • by khaosdoctor • 4w ago • HN discussion ↗

Pangram verdict · v3.3

We believe that this text is a mix of AI and human-written content.

67 %

AI likelihood · overall

AI
19% human-written 81% AI-generated
SEGMENTS · HUMAN 1 of 2
SEGMENTS · AI 1 of 2
WORD COUNT 313
PEAK AI % 76% · §2
Analyzed
Oct 9
backend: pangram/v3.3
Segments scanned
2 windows
avg 157 words each
Distribution
19 / 81%
human / AI fraction
Verdict
AI
Pangram v3.3

Article text · 313 words · 2 segments analyzed

Human AI-generated
§1 Human · 26%

A FUSE virtual filesystem that mounts Proton Drive as a local folder on Linux. What it does¶ This package mounts your Proton Drive at a directory you choose. All the files and folders are listed from Proton's metadata directly. But we also don't download the file content from all your files either, instead the files are downloaded on demand when you read them.

§2 AI · 76%

This is a "lazy" approach that saves bandwidth and disk space. Like Google Drive, Dropbox, OneDrive, etc. Remote changes reach the mount through Proton's event feed, which invalidates the affected directory listings and cached file content. Writes are buffered to a local temp file and uploaded to Proton in full a set timeout when the file closes. Status¶ This is early and unofficial. Not affiliated with, endorsed by, or supported by Proton AG. I have tested the most common paths, like: read, write, create, delete, rename and move operations on one Proton Drive share. But everyone has a different setup, and I can't test them all. Expect bugs. Report them on the issue tracker. Quick start¶ See Quick start for a complete copy-paste flow. Components¶ Your apps don't talk directly to proton. Reads and writes go through the kernel's FUSE layer to the mount daemon, which is the only piece that speaks to Proton's API. So all the communication is locked in this layer to avoid leaks of your credentials or data. The tray, and any future developments (probably a GUI), talk to that same daemon over its local unix socket, falling back to a status file when the socket is not available. Ideally, it will stay working no matter what happens. flowchart LR App["User application"] --> Kernel["Kernel FUSE"] Kernel --> Daemon subgraph Daemon["proton-drive-fs daemon"] direction LR FS["fusefs"] --> Drive["drive"] --> Auth["auth"] end Daemon --> API["Proton API"] Tray["Tray"] -->|"unix socket, status file"| Daemon GUI["Future things"] -.->|"unix socket, status file"| Daemon