Distributed File Storage

Self-hosted
storage
orchestrator.

WebDAV, CalDAV, CardDAV, WOPI, ActivityPub, end-to-end encryption, CRDT co-editing, and federated sync. Built in Rust, deployed in a single binary.

73
Crates
2500+
Tests
9
Protocols
~15 MB
Binary Size

What Ferro provides

A unified storage layer that speaks every protocol your tools expect, with security and distribution built in from the start.

[01]

Multi-Protocol Server

Full WebDAV (Class 1-3), CalDAV (RFC 4791), CardDAV (RFC 6352), WOPI for office document editing, and a REST + GraphQL API for custom integrations.

WebDAVCalDAVCardDAVWOPIRESTGraphQL
[02]

Storage Backends

Pluggable storage: in-memory for testing, local filesystem for homelabs, S3/GCS/Azure Blob for production. Switch backends without changing any client-facing code.

[03]

Authentication & Authorization

Simple password auth for quick starts, OIDC (PKCE) for enterprise, Cedar policy engine for fine-grained authorization. RBAC with deny-by-default semantics.

[04]

End-to-End Encryption

Client-side encryption with per-file keys derived from a master key. AES-256-GCM with metadata encryption. The server never sees plaintext.

[05]

CRDT Co-Editing

Real-time collaborative text editing using CRDTs (Conflict-free Replicated Data Types). Multiple users edit the same document simultaneously without locks.

[06]

Federation & ActivityPub

Interoperate with the fediverse. Follow remote storage instances, receive files from trusted actors, and federate calendars and contacts across servers.

[07]

Block-Level Sync

Delta sync at the block level, not file level. Only changed chunks transfer over the wire. Supports offline mode with conflict resolution on reconnect.

[08]

Multi-Tenancy & Scaling

Tenant isolation with per-tenant storage, quotas, and rate limits. Sharded search index. Distributed consensus with Raft for multi-node deployments.

[09]

Client Ecosystem

Native FUSE mount (Linux), Tauri desktop app, Leptos WASM web UI, async WebDAV client SDK, and an admin CLI. Mobile bindings via C-FFI.

FUSEWeb UIDesktopCLIMobile

Layered architecture

Each layer has a single responsibility. Clients, protocols, storage backends, and extension points are all independently composable.

ClientsWeb UI, FUSE, Desktop, CLI, Mobile
Reverse ProxyCaddy (HTTPS termination)
Middleware StackCompression, CORS, Auth, Rate Limit
Protocol HandlersWebDAV, CalDAV, CardDAV, WOPI, REST, GraphQL
Application StateStorageEngine, MetadataStore, SearchEngine
Storage BackendsIn-Memory, Local FS, S3, GCS, Azure
# Quick start with Docker$ docker run -d \ -p 8080:8080 \ -v /data:/data \ ghcr.io/wyattau/ferro:latest# Or build from source$ cargo install --path crates/server# Then open http://localhost:8080