# wireapp/wire architecture

> Architecture diagram of the GitHub repository wireapp/wire, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/wireapp/wire
- Repository: https://github.com/wireapp/wire

## Overview

This repository is a project overview and licensing/contribution landing page, not a client implementation. The README describes the wider Wire ecosystem: client applications connect to Wire servers, with shared media, cryptography, and protocol-definition components. The graph represents those documented external components; their implementation paths are not present in this repository, so their paths are null. No source excerpts were available, so relationships are limited to README statements.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_clients["Client applications"]
  node_ios["iOS client"]
  node_android["Android client"]
  node_desktop["Desktop client"]
  node_web["Web client"]
end

subgraph group_shared["Shared components"]
  node_avs["AVS library"]
  node_crypto["Core Crypto"]
  node_generic_proto["Client protocol definitions"]
  node_backend_proto["Backend protocol definitions"]
end

subgraph group_backend["Backend"]
  node_server["Wire server"]
end

node_user(("Wire user"))

node_user -->|"uses"| node_ios
node_user -->|"uses"| node_android
node_user -->|"uses"| node_desktop
node_user -->|"uses"| node_web
node_ios -->|"connects to"| node_server
node_android -->|"connects to"| node_server
node_desktop -->|"connects to"| node_server
node_web -->|"connects to"| node_server
node_generic_proto -->|"defines client messages"| node_ios
node_generic_proto -->|"defines client messages"| node_android
node_generic_proto -->|"defines client messages"| node_desktop
node_generic_proto -->|"defines client messages"| node_web
node_backend_proto -->|"defines backend messages"| node_ios
node_backend_proto -->|"defines backend messages"| node_android
node_backend_proto -->|"defines backend messages"| node_desktop
node_backend_proto -->|"defines backend messages"| node_web

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_ios,node_android,node_desktop,node_web,node_user toneBlue
class node_avs,node_crypto,node_generic_proto,node_backend_proto toneAmber
class node_server toneMint
```

## Components

### Client applications

- **iOS client**
- **Android client**
- **Desktop client**
- **Web client**

### Shared components

- **AVS library**
- **Core Crypto**
- **Client protocol definitions**
- **Backend protocol definitions**

### Backend

- **Wire server**

### Other components

- **Wire user**

## Connections

- Wire user → iOS client: uses (evidence: `README.md`)
- Wire user → Android client: uses (evidence: `README.md`)
- Wire user → Desktop client: uses (evidence: `README.md`)
- Wire user → Web client: uses (evidence: `README.md`)
- iOS client → Wire server: connects to (evidence: `README.md`)
- Android client → Wire server: connects to (evidence: `README.md`)
- Desktop client → Wire server: connects to (evidence: `README.md`)
- Web client → Wire server: connects to (evidence: `README.md`)
- Client protocol definitions → iOS client: defines client messages (evidence: `README.md`)
- Client protocol definitions → Android client: defines client messages (evidence: `README.md`)
- Client protocol definitions → Desktop client: defines client messages (evidence: `README.md`)
- Client protocol definitions → Web client: defines client messages (evidence: `README.md`)
- Backend protocol definitions → iOS client: defines backend messages (evidence: `README.md`)
- Backend protocol definitions → Android client: defines backend messages (evidence: `README.md`)
- Backend protocol definitions → Desktop client: defines backend messages (evidence: `README.md`)
- Backend protocol definitions → Web client: defines backend messages (evidence: `README.md`)
