How olvid-io/olvid-ios works
Olvid is an iOS end-to-end encrypted messenger. Users create or choose an identity, connect with trusted interlocutors, and exchange messages; the app layer presents messaging and calling features while the engine handles identity, cryptographic protocols, and network communication. The graph also preserves documented backup, onboarding, and sharing capabilities. Many runtime modules are unsampled, so their internal connections are omitted unless shown by the README or source index.
Main entry points: ObvEngine.swift Engine API · App Messenger app · ShareViewController.swift Share extension · ObvIdentityManagerImplementation.swift Identity management
Components 20
App experience
- Messenger app
Sources/App - Share extension
Sources/App/AppAndExtensions/Extensions/ShareExtension/Sources/ShareViewController.swift - Voice and video calls
Sources/App/AppAndExtensions/App/Sources/VoIP/OlvidCallManager.swift - Onboarding
Sources/App/ObvOnboarding - App backup flows
Sources/App/ObvAppBackup
Cryptographic engine
- Engine API
Sources/Engine/ObvEngine/Sources/ObvEngine.swift - Engine coordinator
Sources/Engine/ObvEngine/Sources/Coordinator/EngineCoordinator.swift - Identity management
Sources/Engine/ObvIdentityManager/Sources/ObvIdentityManagerImplementation.swift - Cryptographic identities
Sources/Engine/ObvCrypto/Sources/ObvCryptoIdentity.swift - Protocol management
Sources/Engine/ObvProtocolManager/Sources/ObvProtocolManager.swift - Secure channels
Sources/Engine/ObvChannelManager/Sources/ObvChannelManagerImplementation.swift - Network communication
Sources/Engine/ObvNetworkFetchManager/Sources/ObvNetworkFetchManagerImplementation.swift - Engine interfaces
Sources/Engine/ObvMetaManager/Sources/ObvMetaManager.swift
Shared foundations
- Shared types
Sources/Shared/ObvTypes - Shared utilities
Sources/Shared/OlvidUtils
Persistence and backup
- Engine database
Sources/Engine/ObvDatabaseManager/Sources/ObvEnginePersistentContainer.swift - Persisted dialogs
Sources/Engine/ObvEngine/Sources/CoreData/PersistedEngineDialog.swift - Backup manager
Sources/Engine/ObvBackupManagerNew/Sources/ObvBackupManagerNew.swift - Backup seed
Sources/Engine/ObvCrypto/Sources/PRNG/BackupSeed.swift
Other components
- User
Connections 20
- User → Messenger app: uses
- User → Share extension: shares content
Sources/App/AppAndExtensions/Extensions/ShareExtension/Sources/ShareViewController.swift - Messenger app → Engine API: uses engine
Sources/App/AppAndExtensions/Extensions/ShareExtension/Sources/ShareViewController.swift - Share extension → Engine API: initializes
Sources/App/AppAndExtensions/Extensions/ShareExtension/Sources/ShareViewController.swift - Messenger app → Voice and video calls: offers calling
Sources/App/AppAndExtensions/App/Sources/VoIP/UI/ViewModelsImplementation/OlvidCallManager+OlvidCallViewActionsProtocol.swift - Messenger app → Onboarding: supports setup
Sources/App/ObvOnboarding/Sources/BackupRestoreLegacy/03WaitingForBackupRestore/WaitingForBackupRestoreViewController.swift - Messenger app → App backup flows: supports backup
Sources/App/ObvAppBackup/DevelopmentResources/SettingsPreviews/PreviewSettingsNavigationController.swift - Engine API → Identity management: delegates identity
Sources/Engine/ObvEngine/Sources/ObvEngine+ObvIdentityManagerImplementationDelegate.swift - Engine API → Backup manager: delegates backup
Sources/Engine/ObvEngine/Sources/ObvEngine+ObvBackupManagerNewDelegate.swift - Engine API → Secure channels: posts messages
Sources/Engine/ObvEngine/Sources/ObvEngine.swift - Engine API → Protocol management: uses protocols
Sources/Engine/ObvEngine/Sources/ObvEngine.swift - Engine API → Network communication: communicates over network
Sources/Engine/ObvEngine/Sources/ObvEngine.swift - Engine API → Engine interfaces: registers managers
Sources/Engine/ObvMetaManager/Sources/ObvMetaManager.swift - Identity management → Cryptographic identities: uses identities
Sources/Engine/ObvIdentityManager/Sources/ObvIdentityManagerImplementation.swift - Engine API → Persisted dialogs: reads dialogs
Sources/Engine/ObvEngine/Sources/ObvEngine.swift - Persisted dialogs → Engine database: persists in
- Engine API → Engine database: uses persistence
- Backup manager → Backup seed: derives keys
Sources/Engine/ObvCrypto/Sources/PRNG/BackupSeed.swift - Engine API → Shared types: uses shared types
Sources/Engine/ObvEngine/Sources/ObvEngine.swift - Engine API → Shared utilities: uses shared utilities
Sources/Engine/ObvEngine/Sources/ObvEngine.swift