Skip to content

Commit dcf09ce

Browse files
committed
Enhance README.md with detailed component descriptions and architecture updates
- Expanded the Core section to include new technologies like Tokio, Wasmer, and Axum. - Added Cryptography & Security and Media Processing sections detailing new features and libraries. - Updated the Architecture Patterns section to reflect changes in job serialization and operation registration. - Improved directory structure descriptions for core, apps, packages, and crates.
1 parent dde0b22 commit dcf09ce

File tree

1 file changed

+94
-30
lines changed

1 file changed

+94
-30
lines changed

README.md

Lines changed: 94 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -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
```
156196
spacedrive/
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

Comments
 (0)