blob: 02af26970922c6bbdf427c93a02e21f5dc20ccc8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
@startuml overview
title Mullvad VPN Android app overview
skinparam SequenceMessageAlign center
skinparam componentStyle rectangle
skinparam linetype polyline
package "App process" as AppProcess {
package "Android App" {
component "Middle layer (Repositories, UseCases etc)" as AppMiddleLayer
component "TileService" as TileService
component "App UI (compose, VMs etc)" as AppUI
component "MullvadVpnService" as VpnService
component "ManagementService" as GrpcClient
}
package "Daemon (Rust)" as DaemonApp {
component "Mullvad JNI" as MullvadJNI
component "ManagementServiceInterface" as GrpcServer
}
}
' gRPC connections.
[GrpcClient] <-[#blue]r-> [GrpcServer] : gRPC (protobuf)
' App connections
AppUI <-d-> AppMiddleLayer
TileService <-d-> AppMiddleLayer
VpnService <-d-> AppMiddleLayer
AppMiddleLayer <-r-> GrpcClient
' Vpn service connections
VpnService <-[#red]r-> MullvadJNI : FFI
[AppUI] <-r-> [VpnService] : Binder
' Fix alignment
MullvadJNI <-[hidden]d-> GrpcServer
TileService <-[hidden]r-> AppUI
@enduml
|