PEP's most basic C++ libraries have the following (inter-)dependencies. See below for more specific (i.e. dependent) libraries.
---
title: Basic library dependencies
---
%% (Ab)using class diagram type because Mermaid has no separate type for dependency graphs
classDiagram
%% Utils
class Utils {
Boost::log + log_setup
MBedTLS::mbedcrypto
OpenSSL::Crypto
xxHash::xxHash
}
%% Testing
class Testing {
GTest::gtest
}
Utils <|-- Testing
%% Gui
class Gui {
Qt6::...
rxcpp
}
Utils <|-- Gui
%% Archiving
class Archiving {
Boost::iostreams
LibArchive::LibArchive
}
Utils <|-- Archiving
%% Versioning
Protohash <|-- Versioning
%% Proto
class Proto {
protobuf::libprotobuf
}
%% Serialization
Utils <|-- Serialization
Proto <|-- Serialization
%% Async
class Async {
rxcpp
}
Utils <|-- Async
%% Crypto
class Crypto {
MbedTLS::mbedx509
}
Serialization <|-- Crypto
%% Morphing
class Morphing {
panda
}
Crypto <|-- Morphing
%% Networking
class Networking {
OpenSSL::SSL
}
Versioning <|-- Networking
Async <|-- Networking
Crypto <|-- Networking
%% Application
Versioning <|-- Application
%% ServiceApplication
Application <|-- ServiceApplication
Networking <|-- ServiceApplication
%% Httpserver
class Httpserver {
civetweb
civetweb::civetweb-cpp
}
Networking <|-- Httpserver
%% Structure
Morphing <|-- Structure
%% Castor
class Castor {
entities
}
Networking <|-- Castor
Structure <|-- Castor
PEP's more specific (i.e. dependent) libraries have have the following (inter-)dependencies. See above for more basic (i.e. less dependent) libraries.
---
title: More specific library dependencies
---
%% (Ab)using class diagram type because Mermaid has no separate type for dependency graphs
classDiagram
%% Serialization
class Serialization {
- see basic dependencies -
}
%% Crypto
class Crypto {
- see basic dependencies -
}
Serialization <|-- Crypto
%% Morphing
class Morphing {
- see basic dependencies -
}
Crypto <|-- Morphing
%% Networking
class Networking {
- see basic dependencies -
}
Crypto <|-- Networking
%% Ticketing
Morphing <|-- Ticketing
%% Registration Server
Morphing <|-- RegistrationServerApi
%% Structure
class Structure {
- see basic dependencies -
}
Morphing <|-- Structure
%% Transcryptor
Ticketing <|-- TranscryptorApi
%% AccessManager
class AccessManagerApi {
Boost::random
}
Structure <|-- AccessManagerApi
TranscryptorApi <|-- AccessManagerApi
%% StorageFacility
Ticketing <|-- StorageFacilityApi
%% Auth
Crypto <|-- Auth
%% Authserver
Crypto <|-- AuthserverApi
%% KeyServer
Serialization <|-- KeyServerApi
%% Metrics
class Metrics {
prometheus-cpp::push
}
%% Server
Morphing <|-- Server
Networking <|-- Server
Auth <|-- Server
Metrics <|-- Server
%% CoreClient
AccessManagerApi <|-- CoreClient
StorageFacilityApi <|-- CoreClient
Server <|-- CoreClient
%% Client
Content <|-- Client
RegistrationServerApi <|-- Client
CoreClient <|-- Client
AuthserverApi <|-- Client
KeyServerApi <|-- Client
Server libraries and executable targets have not been graphed.