How olvid-io/olvid-kotlin-engine works
Olvid Kotlin Engine is a library powering Olvid’s end-to-end encrypted messaging clients, not a standalone application. A client invokes the engine API to manage identities and groups, exchange messages through protocol/channel and network layers, and use cryptographic services; backup and synchronization are additional capabilities. The README documents these major responsibilities, while the source index confirms Engine’s references to backup and channel managers. Several subsystem internals were not sampled, so links beyond those references are documented at the capability level rather than asserted as specific calls.
Main entry points: Engine.kt Engine API · IdentityManager.kt Identity manager · ProtocolManager.kt Protocol manager · FetchManager.kt Network fetch
Components 16
Engine API
- Engine API
src/main/java/io/olvid/engine/engine/Engine.kt - Database session
src/main/java/io/olvid/engine/datatypes/Session.kt - Engine notifications
src/main/java/io/olvid/engine/engine/types/EngineNotifications.kt
Identity and groups
- Identity manager
src/main/java/io/olvid/engine/identity/IdentityManager.kt - Identity records
src/main/java/io/olvid/engine/identity/databases
Messaging and network
- Protocol manager
src/main/java/io/olvid/engine/protocol/ProtocolManager.kt - Channel manager
src/main/java/io/olvid/engine/channel/ChannelManager.kt - Network fetch
src/main/java/io/olvid/engine/networkfetch/FetchManager.kt - Network send
src/main/java/io/olvid/engine/networksend/SendManager.kt
Security foundations
- Cryptographic suite
src/main/java/io/olvid/engine/crypto/Suite.kt - Random service
src/main/java/io/olvid/engine/crypto/PRNGService.kt - Binary encoding
src/main/java/io/olvid/engine/encoder/Encoded.kt
Backup and sync
- Backup manager
src/main/java/io/olvid/engine/backup/BackupManager.kt - Sync snapshots
src/main/java/io/olvid/engine/engine/types/sync
Other components
- Client application
- Olvid server
Connections 17
- Client application → Engine API: calls API
README.md - Engine API → Identity manager: manages identities
- Identity manager → Identity records: persists identity data
- Engine API → Protocol manager: handles protocols
README.md - Protocol manager → Channel manager: uses channels
- Engine API → Channel manager: configures
src/main/java/io/olvid/engine/engine/Engine.kt - Engine API → Backup manager: configures
src/main/java/io/olvid/engine/engine/Engine.kt - Engine API → Network fetch: communicates with server
README.md - Engine API → Network send: communicates with server
README.md - Network fetch → Olvid server: fetches data
README.md - Network send → Olvid server: sends data
README.md - Engine API → Cryptographic suite: provides cryptography
README.md - Cryptographic suite → Random service: uses randomness
src/main/java/io/olvid/engine/crypto/Suite.kt - Engine API → Binary encoding: encodes data
src/main/java/io/olvid/engine/engine/Engine.kt - Engine API → Database session: uses database sessions
src/main/java/io/olvid/engine/engine/Engine.kt - Backup manager → Sync snapshots: uses snapshots
src/main/java/io/olvid/engine/backup/BackupManager.kt - Engine API → Engine notifications: publishes results
src/main/java/io/olvid/engine/engine/Engine.kt