Protocols

38 services, two block protocols, an honest answer for each.

Most remote-mount tools print a logo wall. A logo wall does not tell you whether anyone has ever mounted the thing. So this page is our engineering ledger, published as it stands: 11 of the 40 have been exercised against a real server or an emulator, and the rest say so.

  • Verified against a live server Live-tested

    Mounted against a real server and driven through Finder by a person. This is the only claim that means "it works".

  • Tested against an emulator Emulator-tested

    Exercised against an emulator — Azurite, Microsoft’s own, for Azure Blob; fake-gcs-server for GCS. Strong evidence, not the real endpoint.

  • Same code path as a verified service; endpoint unverified Shared code path

    Uses the same code as a live-tested service, differing only in endpoint and region. Very likely to work; nobody has confirmed it.

  • Compile-verified; no live server reached yet Not yet tested live

    The option keys are pinned by tests and the code builds and links. Nobody has mounted one. We are not going to pretend otherwise.

40 of 40 shown

File protocols

Servers that speak files.

  • Native Rust implementation on russh — not a shell-out to ssh, so it runs inside the App Store sandbox. Mounted against a live NAS and driven through Finder by a person.

    Live-tested Verified against a live server
  • A self-contained pure-Rust client, written because libsmbclient cannot cross-compile to iOS. Live-tested against a real Samba server with mandatory packet signing; no C dependency anywhere in it.

    Live-tested Verified against a live server
  • Live-tested against a real server and driven through Finder. WebDAVS is the same protocol over TLS, not a separate backend.

    Live-tested Verified against a live server
  • Live-tested against a static server. Read-only, and labelled read-only in the volume properties — the protocol cannot write, and pretending otherwise is how data gets lost.

    Live-tested Verified against a live server
  • Native implementation, written because OpenDAL hardcodes passive mode: transfer mode, port and TLS are all controllable. Verified against a live server with 12 integration tests. FTPS is FTP over TLS, not a separate backend.

    Live-tested Verified against a live server
  • Compile-verified and confirmed to cross-compile to iOS. The native libhdfs client needs a JVM, which a sandboxed app cannot load; WebHDFS reaches the same clusters over HTTP.

    Not yet tested live Compile-verified; no live server reached yet
  • Not usable as a mount today, and listed rather than hidden. The vendored backend declares `read: false` behind an upstream FIXME, so it has no read path: a connection can be configured and every file on it opens empty. Compile-verified, and no live server would change that — there is nothing on our side to call.

    Not yet tested live Compile-verified; no live server reached yet
  • Compile-verified; no live server reached yet.

    Not yet tested live Compile-verified; no live server reached yet
  • Compile-verified; no live server reached yet. Self-hostable, so it is on the same live-test path Azure Blob took.

    Not yet tested live Compile-verified; no live server reached yet
  • Read-only, because the backend has no write path at all — a gateway serves content addressed by its hash, and a hash is not a name you can write to. The volume properties say so and writes are refused rather than accepted and lost. Compile-verified; the writable sibling is IPFS MFS, listed separately.

    Not yet tested live Compile-verified; no live server reached yet
  • Compile-verified; no live server reached yet.

    Not yet tested live Compile-verified; no live server reached yet
  • It is what the encryption and union layers wrap, and what they are tested against.

    Not yet tested live Compile-verified; no live server reached yet

Object storage

S3 and the stores that imitate it, plus the data-lake filesystems.

  • Live-tested against MinIO. The same code path reaches Cloudflare R2, Wasabi, Storj, Scaleway, DigitalOcean Spaces, Garage, Ceph and every other S3-compatible endpoint — same API, same credentials, different host. The presets below pre-fill the endpoint for the well-known ones.

    Live-tested Verified against a live server
  • Verified against Azurite, Microsoft’s own emulator. Strong evidence, not the real endpoint.

    Emulator-tested Tested against an emulator
  • Verified against fake-gcs-server. Strong evidence, not the real endpoint.

    Emulator-tested Tested against an emulator
  • Same S3 code path as the live-tested S3 service; the per-provider endpoint is unverified.

    Shared code path Same code path as a verified service; endpoint unverified
  • Same S3 code path as the live-tested S3 service; the per-provider endpoint is unverified.

    Shared code path Same code path as a verified service; endpoint unverified
  • Same S3 code path as the live-tested S3 service; the per-provider endpoint is unverified.

    Shared code path Same code path as a verified service; endpoint unverified
  • Speaks B2’s native API. The S3 endpoint B2 also offers is covered by a preset under S3, which skips nothing but the gateway.

    Not yet tested live Compile-verified; no live server reached yet
  • Compile-verified; no live server reached yet. Self-hostable, so it is on the same live-test path Azure Blob took.

    Not yet tested live Compile-verified; no live server reached yet
  • Compile-verified and confirmed to cross-compile to iOS; no live server reached yet.

    Not yet tested live Compile-verified; no live server reached yet
  • Not usable as a mount today, and listed rather than hidden. The vendored backend declares no read capability at all, so it has no read path: a connection can be configured and every file on it opens empty. Compile-verified, and no live workspace would change that — there is nothing on our side to call.

    Not yet tested live Compile-verified; no live server reached yet
  • Compile-verified; no live server reached yet. Self-hostable, so it is on the same live-test path Azure Blob took.

    Not yet tested live Compile-verified; no live server reached yet
  • Compile-verified; no live server reached yet.

    Not yet tested live Compile-verified; no live server reached yet
  • Compile-verified; no live server reached yet.

    Not yet tested live Compile-verified; no live server reached yet
  • Compile-verified; no live server reached yet.

    Not yet tested live Compile-verified; no live server reached yet
  • Read-only: the backend has no write path, so a repository mounts for reading and writes are refused rather than accepted and lost. That suits what people mount it for — pulling weights and datasets without a download step. Compile-verified; no live server reached yet.

    Not yet tested live Compile-verified; no live server reached yet

Consumer clouds

Sign-in with the provider, storage billed by them.

  • Native client, verified against a live account: digest sign-in, two-factor by SMS, push or recovery, and the full backend trait. The EU region refuses passwords in query parameters; this client does not use them.

    Live-tested Verified against a live server
  • Implemented and compiled; waiting on the provider registration that lets anyone sign in. Sign-in happens in the system browser, so your Google password never touches the app. Mountit asks Google for the narrow drive.file scope, so you choose the folders it may see through Google’s own picker — it is never handed your whole Drive.

    Not yet tested live Compile-verified; no live server reached yet
  • Implemented and compiled; waiting on the provider registration that lets anyone sign in.

    Not yet tested live Compile-verified; no live server reached yet
  • Implemented and compiled; waiting on the provider registration that lets anyone sign in.

    Not yet tested live Compile-verified; no live server reached yet
  • A native REST client, tested against an in-process mock Box API. One live account is still needed to confirm a response spelling; everything else about it is covered by the mock suite.

    Not yet tested live Compile-verified; no live server reached yet
  • Read-only today: the upload path is not written, and the volume says so rather than accepting a write it cannot honour. Key derivation is verified byte-for-byte against the library rclone uses, and the wire protocol is driven end to end against an in-process MEGA.

    Not yet tested live Compile-verified; no live server reached yet
  • Compile-verified; no live server reached yet.

    Not yet tested live Compile-verified; no live server reached yet
  • Compile-verified; no live server reached yet.

    Not yet tested live Compile-verified; no live server reached yet
  • Speaks Koofr’s own API, and its WebDAV endpoint too — the preset under WebDAV needs an app password. Compile-verified; no live server reached yet.

    Not yet tested live Compile-verified; no live server reached yet
  • A native client (`mountit-putio`), added to the picker on 2026-09-03 alongside Premiumize.me — both crates were complete and compiled for weeks before either could be selected. Unit-tested against put.io’s own published JSON shapes; no live account has mounted it yet, and put.io’s paid-only, no-free-tier, no-emulator account is why: a conformance lane needs someone to buy a subscription first.

    Not yet tested live Compile-verified; no live server reached yet
  • A native client (`mountit-premiumize`), added to the picker on 2026-09-03 alongside put.io. Unit-tested against the exact JSON shapes rclone’s own premiumize client handles — including the API’s habit of answering a refusal with HTTP 200 and an error body, which a generic client would read as success. No live account has mounted it yet: premiumize is a paid-only service with no free tier and no self-hostable server, so a conformance lane needs someone to buy a subscription first.

    Not yet tested live Compile-verified; no live server reached yet

Block protocols

Raw devices, attached and mounted. Mountit Pro only.

  • iSCSI Mountit Pro

    Live-tested against a real tgt target, including the R2T multi-burst path.

    Live-tested Verified against a live server
  • NVMe-oF Mountit Pro

    Tested end to end against a target built alongside the initiator; cross-validation against Linux nvmet is pending.

    Emulator-tested Tested against an emulator

All 38 picker services are named above — plus the two block protocols. 29 of them have never been exercised: 26 compile-verified only — the code builds and their option keys are pinned by tests — and 3 share a code path with a verified service without their own endpoint having been confirmed. The table above says which is which. Each one keeps its evidence level until it has actually been mounted. Every service also has a page of its own under Backends.

Being mounted once is the floor, not the bar. The dots above answer “has this ever been run against a real server?”. A harder question — “did it keep every promise the volume layer relies on?” — is answered by the conformance corpus, and the answer today is that several services which mount perfectly well are not conformance-clean. That is published in full, service by service, on the compatibility ledger.

Two things this list will not do

Something missing?

The target is everything rclone mounts and everything ExpanDrive mounts. If your storage is not listed, tell us what it is — the honest answer might be “next release”, and it might be “that protocol cannot do what you want”, but it will be one of those two.

Request a protocol