Multi-platform cloud-sync core. Pure JVM, zero telemetry. Modular SPI for Internxt Drive (zero-knowledge E2EE) and Microsoft OneDrive (Graph API). Runs as a user-space Linux daemon via systemd; platform tiers consume the engine over IPC — unidrive-mount-linux (FUSE) and unidrive-windows (CfAPI, read-only tier in MVP).
.
├── core/
│ ├── app/
│ │ ├── cli/ # CLI entry point and subcommand mapping
│ │ ├── core/ # Engine, crypto, model sets
│ │ ├── hydration/ # De/hydration pipeline
│ │ └── sync-tracking/ # State reconciler and tracking-set engines
│ └── providers/
│ ├── internxt/ # Zero-knowledge encrypted client
│ └── onedrive/ # Microsoft Graph API client
└── dist/ # User-space install scripts and systemd units
JDK 21+, Linux with systemd --user.
./gradlew :core:app:cli:assemble # build fat JARcd dist/
./install.shInstalls to:
~/.local/bin/unidrive~/.local/lib/unidrive/unidrive-<version>.jar~/.config/systemd/user/unidrive.service
Start daemon:
systemctl --user daemon-reload
systemctl --user enable --now unidrive.serviceDaemon log: ~/.local/share/unidrive/unidrive.log. Quick triage: scripts/dev/log-watch.sh --summary.
unidrive uses a git-inspired subcommand design.
auth— OAuth/token provisioningprofile— multi-profile managementlogout— destroy session, invalidate credentials
sync— run tracking-set delta enginestatus— show alignment, transfers, exceptionsconflicts— convergence paths for conflicting hashes
pin / get— hydrate specific foldersfree— dehydrate to sparse markersvault— vault operationssweep— garbage-collect detached index fragments
ProviderFactory.kt— SPI provider registration frameworkTrackingEngine.kt— tracking-set delta calculatorHydrationImpl.kt— physical payload de/reconstruction lifecycle