Unofficial community projects

Open-source tools for Proton Drive.

Two apps and the Rust SDK under them: stream the videos in your Drive on every screen, use your Drive as a folder on the Linux desktop, or build your own client.

Written in Rust · MIT licensed · no telemetry

Projects

The projects

Each one is free, open source and maintained by one developer.

  • Linux · Windows · Android · Android TV · iOS

    proton-stream

    Your Proton Drive, streaming.

    A Netflix-style library for the videos in your Drive and the share links people send you. Episodes start in seconds, seeking fetches only what it lands on, and your place syncs across devices through your own Drive.

    • Public share links or folders of your own Drive
    • Posters, synopses and shelves from AniList or TMDB, off by default
    • Offline downloads and new-episode notifications on mobile
    The proton-stream library on the desktop and on a phone
  • Linux · Fedora · Arch · Debian and Ubuntu · NixOS

    Proton Drive for Linux

    Proton Drive on the Linux desktop.

    Your files as a folder that downloads on demand, synced local folders, Photos and sharing, in a native GTK4 app with a tray icon and a search launcher, plus a scriptable command line.

    • ~/ProtonDrive works with every program, online or offline
    • Two-way synced folders, Photos with albums and a map, sharing
    • Eight languages and about 55 pdfs commands
    My files in the Proton Drive for Linux app
  • Rust crates · proton-sdk and proton-drive-rs

    proton-sdk-rs

    The Proton Drive SDK, in pure Rust.

    A reimplementation of Proton’s Drive SDK that talks to the Drive API over HTTPS and does every OpenPGP operation natively with rPGP. Async, no FFI, and unsafe code is forbidden.

    • Sign-in with SRP and two-factor, sessions you can resume
    • Files, folders, Photos, sharing, revisions and the event stream
    • Seekable, block-by-block downloads for streaming
    Listing My Files
    let drive = ProtonDriveClient::new(&session, mailbox_password);
    let root = drive.get_my_files_folder().await?;
    
    let uids = drive.enumerate_folder_children_node_uids(&root.uid).await?;
    for node in drive.enumerate_nodes(&uids).await? {
        println!("{}", node.name);
    }

How they fit

How they fit together

Both apps are built on the SDK. Everything a new client needs from Proton Drive goes there first, so a fix in one place reaches every app.

Principles

The same promises everywhere

  • Open source

    Every line is on GitHub under the MIT License; the proton-stream mobile apps are GPL-3.0-or-later.

  • Encryption stays end to end

    Files are encrypted and decrypted on your device with your own keys. No app adds a server in between.

  • No telemetry

    The apps talk to Proton. Anything else, such as a metadata provider or an update check, is off until you turn it on.

  • Secrets in the keyring

    Sessions, share links and passwords go to the system keyring, never into a config file.