summaryrefslogtreecommitdiffhomepage
path: root/android/docs/diagrams/overview.puml
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