Skip to content

BIBLIOTHEKEN_UBERSICHT

GitHub Actions edited this page Jan 2, 2026 · 1 revision

ThemisDB Bibliotheken-Übersicht

Stand: 26. Dezember 2025
Version: v1.3.1
Kategorie: 🚀 Deployment
Status: Production-Ready


📑 Inhaltsverzeichnis


🎯 Übersicht

ThemisDB nutzt moderne C++ Bibliotheken für Hochleistungs-Datenbank-Funktionalität. Alle Abhängigkeiten werden über vcpkg verwaltet für reproduzierbare Builds auf allen Plattformen.

Gesamt: 17 Kern-Bibliotheken + optionale Feature-Bibliotheken


📦 Kern-Abhängigkeiten

Diese Bibliotheken sind für alle ThemisDB-Builds erforderlich:

1. OpenSSL

  • Version: Aktuell über vcpkg
  • Zweck: TLS/SSL-Verschlüsselung, kryptographische Funktionen
  • vcpkg: openssl
  • Dokumentation: https://www.openssl.org/docs/
  • Lizenz: Apache 2.0

2. RocksDB

  • Version: Aktuell über vcpkg
  • Zweck: Embedded Key-Value Store, LSM-Tree Storage Engine
  • vcpkg: rocksdb mit Features: lz4, zstd
  • Dokumentation: https://rocksdb.org/
  • Lizenz: Apache 2.0 / GPL 2.0
  • Features:
    • lz4: LZ4 Kompression für schnelle I/O
    • zstd: Zstandard Kompression für hohe Kompressionsraten

3. simdjson

  • Version: Aktuell über vcpkg
  • Zweck: Ultra-schnelles JSON Parsing (Gigabytes pro Sekunde)
  • vcpkg: simdjson
  • Dokumentation: https://simdjson.org/
  • Lizenz: Apache 2.0

4. Intel TBB (Threading Building Blocks)

5. Apache Arrow

  • Version: Aktuell über vcpkg
  • Zweck: Spaltenbasierte In-Memory Datenverarbeitung, Zero-Copy Analytics
  • vcpkg: arrow mit Features: parquet, compute
  • Dokumentation: https://arrow.apache.org/docs/
  • Lizenz: Apache 2.0
  • Features:
    • parquet: Apache Parquet Format Support
    • compute: Arrow Compute Kernels für Analytics

6. HNSWlib

  • Version: Aktuell über vcpkg
  • Zweck: Approximate Nearest Neighbor Search (Vektor-Ähnlichkeitssuche)
  • vcpkg: hnswlib
  • Dokumentation: https://github.com/nmslib/hnswlib
  • Lizenz: Apache 2.0

7. Google Test

8. Google Benchmark

9. Boost.Asio

10. Boost.Beast

11. spdlog

12. nlohmann/json

  • Version: Aktuell über vcpkg
  • Zweck: JSON für Modern C++, Schema-Validierung
  • vcpkg: nlohmann-json
  • Dokumentation: https://json.nlohmann.me/
  • Lizenz: MIT

13. OpenTelemetry C++

  • Version: Aktuell über vcpkg
  • Zweck: Distributed Tracing, Observability
  • vcpkg: opentelemetry-cpp mit Feature: otlp-http
  • Dokumentation: https://opentelemetry.io/docs/instrumentation/cpp/
  • Lizenz: Apache 2.0
  • CMake Option: THEMIS_ENABLE_TRACING (Standard: ON)
  • Features:
    • otlp-http: OTLP HTTP Exporter für Jaeger/Tempo

14. libcurl

  • Version: Aktuell über vcpkg
  • Zweck: HTTP Client für externe API-Aufrufe
  • vcpkg: curl
  • Dokumentation: https://curl.se/libcurl/
  • Lizenz: curl License (MIT-style)

15. yaml-cpp

16. Zstandard (zstd)

17. mimalloc

  • Version: Aktuell über vcpkg
  • Zweck: Hochperformanter Memory Allocator
  • vcpkg: mimalloc
  • Dokumentation: https://microsoft.github.io/mimalloc/
  • Lizenz: MIT
  • CMake Option: THEMIS_ENABLE_MIMALLOC (Standard: OFF)
  • Performance: +10-20% bei Memory-intensiven Workloads

🎨 Optionale Features

Diese Bibliotheken werden nur bei Aktivierung des entsprechenden Features geladen:

GPU Acceleration (Feature: gpu)

  • FAISS - Facebook AI Similarity Search
    • vcpkg: faiss
    • CMake: THEMIS_ENABLE_GPU=ON
    • Dokumentation: https://faiss.ai/
    • Lizenz: MIT

LLM Integration (Feature: llm)

gRPC Support (Feature: rpc, grpc)

  • gRPC - RPC Framework
    • vcpkg: grpc
    • CMake: THEMIS_ENABLE_GRPC=ON (Standard: ON in v1.3.0+)
    • Dokumentation: https://grpc.io/docs/
    • Lizenz: Apache 2.0
  • Protocol Buffers

HTTP/2 Support (Feature: http2)

  • nghttp2 - HTTP/2 C Library

HTTP/3 Support (Feature: http3)

MQTT Support (Feature: mqtt)

  • Eclipse Paho MQTT C++ - MQTT Client

CUDA Support (Feature: cuda)

  • NVIDIA CUDA Toolkit - GPU Compute

🔧 Build-System

vcpkg - Paketmanager

  • Version: Integriert als Git Submodule
  • Baseline: bee7b66f0219eeb463dc1ff77ad6ad0211f94f48
  • Modus: Offline-First (vcpkg/downloads/ Cache)
  • Dokumentation: https://vcpkg.io/
  • vcpkg.json: Deklarative Abhängigkeitsverwaltung

CMake - Build Generator


📋 Paketmanagement

Dependency Resolution

ThemisDB verwendet eine vcpkg manifest mode Architektur:

  1. vcpkg.json - Deklariert alle Abhängigkeiten
  2. vcpkg-configuration.json - vcpkg Registries
  3. CMakeLists.txt - Build-Logik, Feature-Flags
  4. CMakePresets.json - Vorkonfigurierte Build-Varianten

Offline-First Strategy

# 1. Einmalig: Download aller Source-Archive
./scripts/setup-vcpkg-offline.sh    # Linux/macOS
.\scripts\setup-vcpkg-offline.ps1   # Windows

# 2. Build (100% offline möglich)
cmake -B build -DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build build

Siehe: VCPKG_OFFLINE_STRATEGY.md

Version Pinning

  • vcpkg baseline: Fixiert auf getesteten Stand
  • vcpkg.json builtin-baseline: bee7b66f0219eeb463dc1ff77ad6ad0211f94f48
  • Reproduzierbare Builds: Identische Library-Versionen auf allen Plattformen

🔗 Verwandte Dokumentation


🚀 Quick Reference

Häufig verwendete vcpkg Features

# LLM Support aktivieren
cmake -B build -DTHEMIS_ENABLE_LLM=ON

# GPU Support aktivieren (benötigt FAISS)
cmake -B build -DTHEMIS_ENABLE_GPU=ON
# vcpkg.json Feature: "gpu"

# gRPC Support aktivieren
cmake -B build -DTHEMIS_ENABLE_GRPC=ON
# vcpkg.json Feature: "grpc"

# HTTP/2 Support aktivieren
cmake -B build -DTHEMIS_ENABLE_HTTP2=ON
# vcpkg.json Feature: "http2"

# HTTP/3 (QUIC) Support aktivieren
cmake -B build -DTHEMIS_ENABLE_HTTP3=ON
# vcpkg.json Feature: "http3"

# MQTT Support aktivieren
cmake -B build -DTHEMIS_ENABLE_MQTT=ON
# vcpkg.json Feature: "mqtt"

vcpkg.json Features nutzen

# Feature bei vcpkg install angeben
vcpkg install themisdb[gpu,llm,grpc]

# Oder in CMake über Feature-Flag
cmake -B build \
  -DTHEMIS_ENABLE_GPU=ON \
  -DTHEMIS_ENABLE_LLM=ON \
  -DTHEMIS_ENABLE_GRPC=ON

📊 Statistik

Kategorie Anzahl
Kern-Bibliotheken 17
Optional: GPU 1
Optional: LLM 1 (Git Submodule)
Optional: Protokolle 5 (gRPC, HTTP/2, HTTP/3, MQTT)
Build-Tools 2 (vcpkg, CMake)
Gesamt Dependencies 26+

Gesamtgröße vcpkg downloads Cache: ~2.5 GB
Build Time (erste Build): 20-35 min je nach Platform
Build Time (inkrementell): 2-10 min

ThemisDB Dokumentation

Version: 1.3.0 | Stand: Dezember 2025


📋 Schnellstart


🏗️ Architektur


🗄️ Basismodell


💾 Storage & MVCC


📇 Indexe & Statistiken


🔍 Query & AQL


💰 Caching


📦 Content Pipeline


🔎 Suche


⚡ Performance & Benchmarks


🏢 Enterprise Features


✅ Qualitätssicherung


🧮 Vektor & GNN


🌍 Geo Features


🛡️ Sicherheit & Governance

Authentication

Schlüsselverwaltung

Verschlüsselung

TLS & Certificates

PKI & Signatures

PII Detection

Vault & HSM

Audit & Compliance

Security Audits

Gap Analysis


🚀 Deployment & Betrieb

Docker

Observability

Change Data Capture

Operations


💻 Entwicklung

API Implementations

Changefeed

Security Development

Development Overviews


📄 Publikation & Ablage


🔧 Admin-Tools


🔌 APIs


📚 Client SDKs


📊 Implementierungs-Zusammenfassungen


📅 Planung & Reports


📖 Dokumentation


📝 Release Notes


📖 Styleguide & Glossar


🗺️ Roadmap & Changelog


💾 Source Code Documentation

Main Programs

Source Code Module


🗄️ Archive


🤝 Community & Support


Vollständige Dokumentation: https://makr-code.github.io/ThemisDB/

Clone this wiki locally