# evemu-project/evemu_crucible architecture

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

- Interactive diagram: https://gitdiagram.com/evemu-project/evemu_crucible
- Repository: https://github.com/evemu-project/evemu_crucible

## Overview

EVEmu is a C++ server emulator for EVE Online. Its main user workflow is a game client connecting, authenticating, and invoking server services to perform in-game actions and receive protocol responses. Service dispatch is a key internal layer; gameplay capabilities span character skills, inventory, ships and modules, fleets, chat, markets, exploration, and world simulation. The tree and README establish this product scope, while sampled source confirms service dispatch, skill operations, entity construction, and database access; unsampled subsystem wiring is not asserted.

Main entry points: [`src/eve-server/character/SkillMgrService.cpp`](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/character/SkillMgrService.cpp) (Character skills), [`src/eve-core/database/dbcore.cpp`](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-core/database/dbcore.cpp) (Database core), [`src/eve-server/services/ServiceManager.cpp`](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/services/ServiceManager.cpp) (Service manager), [`src/eve-server/inventory/ItemFactory.cpp`](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/inventory/ItemFactory.cpp) (Item factory)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_protocol["Client protocol"]
  node_transport["TCP transport"]
  node_packet["Packet dispatch<br/>[EVEPktDispatch.cpp]"]
  node_marshal["Python marshal<br/>[EVEMarshal.cpp]"]
  node_session["Client session<br/>[ClientSession.cpp]"]
  node_services["Service manager<br/>[ServiceManager.cpp]"]
end

subgraph group_gameplay["Gameplay services"]
  node_auth["Authentication<br/>[AuthService.cpp]"]
  node_skills["Character skills"]
  node_inventory["Inventory<br/>[Inventory.cpp]"]
  node_ships["Ships and modules<br/>[ModuleManager.cpp]"]
  node_fleet["Fleet operations<br/>[FleetManager.cpp]"]
  node_market["Market<br/>[MarketMgr.cpp]"]
  node_social["Chat and mail<br/>[LSCService.cpp]"]
  node_exploration["Exploration<br/>[ScanMgrService.cpp]"]
  node_api["Character API"]
end

subgraph group_world["World simulation"]
  node_system["Solar systems<br/>[SystemManager.cpp]"]
  node_destiny["Movement simulation<br/>[DestinyManager.cpp]"]
  node_itemfactory["Item factory<br/>[ItemFactory.cpp]"]
end

subgraph group_persistence["Persistence"]
  node_db["Database core<br/>[dbcore.cpp]"]
  node_cosmicdb["World data queries<br/>[ManagerDB.cpp]"]
end

subgraph group_integrations["External interfaces"]
  node_mysql[("MySQL database")]
end

node_client(("EVE client"))

node_services -->|"dispatches calls"| node_auth
node_services -->|"dispatches calls"| node_skills
node_skills -->|"loads skills"| node_itemfactory
node_skills -->|"queues events"| node_client
node_system -->|"loads entity items"| node_itemfactory
node_cosmicdb -->|"runs queries"| node_db
node_db -->|"queries"| node_mysql
node_api -->|"reads character data"| node_db

click node_transport "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-common/network/EVETCPConnection.cpp"
click node_packet "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-common/network/EVEPktDispatch.cpp"
click node_marshal "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-common/marshal/EVEMarshal.cpp"
click node_session "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/ClientSession.cpp"
click node_services "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/services/ServiceManager.cpp"
click node_auth "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/account/AuthService.cpp"
click node_skills "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/character/SkillMgrService.cpp"
click node_inventory "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/inventory/Inventory.cpp"
click node_ships "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/ship/modules/ModuleManager.cpp"
click node_fleet "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/fleet/FleetManager.cpp"
click node_market "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/market/MarketMgr.cpp"
click node_social "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/chat/LSCService.cpp"
click node_exploration "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/exploration/ScanMgrService.cpp"
click node_system "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/system/SystemManager.cpp"
click node_destiny "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/system/DestinyManager.cpp"
click node_itemfactory "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/inventory/ItemFactory.cpp"
click node_db "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-core/database/dbcore.cpp"
click node_cosmicdb "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/system/cosmicMgrs/ManagerDB.cpp"
click node_api "https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/apiserver/APICharacterManager.cpp"

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_transport,node_packet,node_marshal,node_session,node_services,node_client toneBlue
class node_auth,node_skills,node_inventory,node_ships,node_fleet,node_market,node_social,node_exploration,node_api toneAmber
class node_system,node_destiny,node_itemfactory toneMint
class node_db,node_cosmicdb toneRose
class node_mysql toneIndigo
```

## Components

### Client protocol

- [TCP transport](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-common/network/EVETCPConnection.cpp): `src/eve-common/network/EVETCPConnection.cpp`
- [Packet dispatch](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-common/network/EVEPktDispatch.cpp): `src/eve-common/network/EVEPktDispatch.cpp`
- [Python marshal](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-common/marshal/EVEMarshal.cpp): `src/eve-common/marshal/EVEMarshal.cpp`
- [Client session](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/ClientSession.cpp): `src/eve-server/ClientSession.cpp`
- [Service manager](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/services/ServiceManager.cpp): `src/eve-server/services/ServiceManager.cpp`

### Gameplay services

- [Authentication](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/account/AuthService.cpp): `src/eve-server/account/AuthService.cpp`
- [Character skills](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/character/SkillMgrService.cpp): `src/eve-server/character/SkillMgrService.cpp`
- [Inventory](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/inventory/Inventory.cpp): `src/eve-server/inventory/Inventory.cpp`
- [Ships and modules](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/ship/modules/ModuleManager.cpp): `src/eve-server/ship/modules/ModuleManager.cpp`
- [Fleet operations](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/fleet/FleetManager.cpp): `src/eve-server/fleet/FleetManager.cpp`
- [Market](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/market/MarketMgr.cpp): `src/eve-server/market/MarketMgr.cpp`
- [Chat and mail](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/chat/LSCService.cpp): `src/eve-server/chat/LSCService.cpp`
- [Exploration](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/exploration/ScanMgrService.cpp): `src/eve-server/exploration/ScanMgrService.cpp`
- [Character API](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/apiserver/APICharacterManager.cpp): `src/eve-server/apiserver/APICharacterManager.cpp`

### World simulation

- [Solar systems](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/system/SystemManager.cpp): `src/eve-server/system/SystemManager.cpp`
- [Movement simulation](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/system/DestinyManager.cpp): `src/eve-server/system/DestinyManager.cpp`
- [Item factory](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/inventory/ItemFactory.cpp): `src/eve-server/inventory/ItemFactory.cpp`

### Persistence

- [Database core](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-core/database/dbcore.cpp): `src/eve-core/database/dbcore.cpp`
- [World data queries](https://github.com/evemu-project/evemu_crucible/blob/master/src/eve-server/system/cosmicMgrs/ManagerDB.cpp): `src/eve-server/system/cosmicMgrs/ManagerDB.cpp`

### External interfaces

- **MySQL database**

### Other components

- **EVE client**

## Connections

- Service manager → Authentication: dispatches calls
- Service manager → Character skills: dispatches calls
- Character skills → Item factory: loads skills
- Character skills → EVE client: queues events
- Solar systems → Item factory: loads entity items
- World data queries → Database core: runs queries
- Database core → MySQL database: queries
- Character API → Database core: reads character data
