@@ -127,52 +127,116 @@ Peer-to-peer synchronization without central coordinators. Device-specific data
127127** Core**
128128
129129- ** Rust** - Entire VDFS implementation (~ 183k lines)
130- - ** SQLite + SeaORM** - Local-first database with type-safe queries
131- - ** Iroh** - P2P networking with QUIC transport and hole-punching
130+ - ** Tokio** - Async runtime
131+ - ** SQLite + SeaORM** - Local-first database with type-safe ORM queries
132+ - ** Iroh** - P2P networking with QUIC transport, hole-punching, and local discovery
132133- ** BLAKE3** - Fast cryptographic hashing for content identity
133- - ** WASM** - Sandboxed extension runtime
134-
135- ** Apps**
136-
137- - ** CLI** - Command-line interface (available now)
138- - ** Server** - Headless daemon for Docker deployment ([ self-hosting guide] ( https://v2.spacedrive.com/overview/self-hosting ) )
139- - ** Tauri** - Cross-platform desktop with React frontend (macOS and Linux now, Windows in alpha.2)
140- - ** Web** - Web interface and shared UI components (available now)
141- - ** Mobile** - React Native mobile app (iOS and Android coming soon)
142- - ** Prototypes** - Native Swift apps (iOS, macOS) and GPUI media viewer for exploration
134+ - ** Wasmer** - Sandboxed WASM extension runtime
135+ - ** Axum** - HTTP/GraphQL server for web and API access
136+ - ** OpenDAL** - Unified cloud storage abstraction (S3, Google Drive, OneDrive, Dropbox, Azure Blob, GCS)
137+ - ** Specta** - Auto-generated TypeScript and Swift types from Rust
138+
139+ ** Cryptography & Security**
140+
141+ - ** Ed25519 / X25519** - Signatures and key exchange
142+ - ** ChaCha20-Poly1305 / AES-GCM** - Authenticated encryption
143+ - ** Argon2** - Password hashing
144+ - ** BIP39** - Mnemonic phrase support for key backup
145+ - ** redb** - Encrypted key-value store for credentials
146+
147+ ** Media Processing**
148+
149+ - ** FFmpeg** (via custom ` sd-ffmpeg ` crate) - Video thumbnails, audio extraction
150+ - ** libheif** - HEIF/HEIC image support
151+ - ** Pdfium** - PDF rendering
152+ - ** Whisper** - On-device speech recognition (Metal-accelerated on Apple platforms)
153+ - ** Blurhash** - Compact image placeholders
154+
155+ ** Interface** (shared across web and desktop)
156+
157+ - ** React 19** - UI framework
158+ - ** Vite** - Build tooling
159+ - ** TypeScript** - Type-safe frontend code
160+ - ** TanStack Query** - Server state management
161+ - ** Zustand** - Client state management
162+ - ** Radix UI** - Accessible headless components
163+ - ** Tailwind CSS** - Utility-first styling
164+ - ** Framer Motion** - Animations
165+ - ** React Hook Form + Zod** - Form management and validation
166+ - ** Three.js / React Three Fiber** - 3D visualization
167+ - ** dnd-kit** - Drag and drop
168+ - ** TanStack Virtual / TanStack Table** - Virtualized lists and tables
169+
170+ ** Desktop**
171+
172+ - ** Tauri 2** - Cross-platform desktop shell (macOS, Linux, Windows)
173+
174+ ** Mobile (React Native)**
175+
176+ - ** React Native** 0.81 + ** Expo** - Cross-platform mobile framework
177+ - ** Expo Router** - File-based routing
178+ - ** NativeWind** - Tailwind CSS for React Native
179+ - ** React Navigation** - Native navigation stack
180+ - ** Reanimated** - Native-thread animations
181+ - ** sd-mobile-core** - Rust core bridge via FFI
143182
144183** Architecture Patterns**
145184
146185- Event-driven design with centralized EventBus
147186- CQRS: Actions (mutations) and Queries (reads) with preview-commit-verify
148- - Durable jobs with MessagePack serialization
187+ - Durable jobs with MessagePack serialization and checkpointing
149188- Domain-separated sync with clear data ownership boundaries
189+ - Compile-time operation registration via ` inventory ` crate
150190
151191---
152192
153193## Project Structure
154194
155195```
156196spacedrive/
157- ├── core/ # Rust VDFS implementation
197+ ├── core/ # Rust VDFS implementation
158198│ ├── src/
159- │ │ ├── domain/ # Core models (Entry, Library, Device, Tag)
160- │ │ ├── ops/ # CQRS operations (actions & queries)
161- │ │ ├── infra/ # Infrastructure (DB, events, jobs, sync)
162- │ │ ├── service/ # High-level services (network, file sharing)
163- │ │ ├── location/ # Location management and indexing
164- │ │ ├── library/ # Library lifecycle and operations
165- │ │ └── volume/ # Volume detection and fingerprinting
199+ │ │ ├── domain/ # Core models (Entry, Library, Device, Tag, Volume)
200+ │ │ ├── ops/ # CQRS operations (actions & queries)
201+ │ │ ├── infra/ # Infrastructure (DB, events, jobs, sync)
202+ │ │ ├── service/ # High-level services (network, file sharing, sync)
203+ │ │ ├── crypto/ # Key management and encryption
204+ │ │ ├── device/ # Device identity and configuration
205+ │ │ ├── filetype/ # File type detection and registry
206+ │ │ ├── location/ # Location management and indexing
207+ │ │ ├── library/ # Library lifecycle and operations
208+ │ │ └── volume/ # Volume detection and fingerprinting
209+ │ └── tests/ # Integration tests (pairing, sync, file transfer)
166210├── apps/
167- │ ├── cli/ # CLI for managing libraries and running daemon
168- │ ├── server/ # Headless server daemon
169- │ ├── tauri/ # Cross-platform desktop app (macOS, Windows, Linux)
170- │ ├── ios/ # Native prototype (private)
171- │ ├── macos/ # Native prototype (private)
172- │ └── gpui-photo-grid/ # GPUI media viewer prototype
173- ├── extensions/ # WASM extensions
174- ├── crates/ # Shared Rust utilities
175- └── docs/ # Architecture documentation
211+ │ ├── cli/ # CLI and daemon entry point
212+ │ ├── server/ # Headless server for Docker/self-hosting
213+ │ ├── tauri/ # Desktop app shell (macOS, Windows, Linux)
214+ │ ├── web/ # Web app (Vite, connects to daemon via WebSocket)
215+ │ ├── mobile/ # React Native mobile app (Expo)
216+ │ ├── api/ # Cloud API server (Bun + Elysia)
217+ │ ├── landing/ # Marketing site and docs (Next.js)
218+ │ ├── ios/ # Native iOS prototype (Swift)
219+ │ ├── macos/ # Native macOS prototype (Swift)
220+ │ └── gpui-photo-grid/ # GPUI media viewer prototype
221+ ├── packages/
222+ │ ├── interface/ # Shared React UI (used by web and desktop)
223+ │ ├── ts-client/ # Auto-generated TypeScript client and hooks
224+ │ ├── swift-client/ # Auto-generated Swift client
225+ │ ├── ui/ # Shared component library
226+ │ └── assets/ # Icons and images
227+ ├── crates/
228+ │ ├── crypto/ # Cryptographic primitives
229+ │ ├── ffmpeg/ # FFmpeg bindings for video/audio
230+ │ ├── images/ # Image processing (HEIF, PDF, SVG)
231+ │ ├── media-metadata/ # EXIF/media metadata extraction
232+ │ ├── fs-watcher/ # Cross-platform file system watcher
233+ │ ├── sdk/ # WASM extension SDK
234+ │ ├── sdk-macros/ # Extension procedural macros
235+ │ ├── task-system/ # Durable job execution engine
236+ │ ├── sd-client/ # Rust client library
237+ │ └── ... # actors, fda, log-analyzer, utils
238+ ├── extensions/ # WASM extensions (photos, test-extension)
239+ └── docs/ # Architecture documentation
176240```
177241
178242---
0 commit comments