High-level architecture:
flowchart LR
Frontend -->|VFS API| Middleware
Middleware -->|VFS API| Backend
- Frontend: a way to access a VFS, for example FUSE or WebDAV
- Middleware: transforms access, for example encryption or caching
- Backend: stores the physical files, for example via Java NIO
The common API between layers is the vfs-api. Shared building blocks live in vfs-common.
Subprojects:
vfs-api: common VFS API between layersvfs-common: shared code used by implementationsvfs-frontend-fuse: frontend for FUSE-based accessvfs-frontend-webdav: frontend for WebDAV-based accessvfs-middleware-crypto: middleware for encrypting writes and decrypting readsvfs-backend-nio: backend for Java NIO-based storagevfs-test: executable wiring for manual end-to-end testing