# LuaJIT Integration für auto-boot-ollama-host ## Übersicht Dieses Projekt wurde erfolgreich konvertiert, um LuaJIT anstelle von Standard-Lua zu verwenden, was eine erhebliche Performance-Verbesserung bietet. ## Performance-Verbesserung Basierend auf unseren Benchmarks zeigt LuaJIT eine **35x schnellere Performance** im Vergleich zu Lua 5.4: - **Lua 5.4**: 23.8 Millionen Operationen/Sekunde - **LuaJIT**: 850.8 Millionen Operationen/Sekunde ## Konfiguration ### Umgebungsvariablen - `USE_LUAJIT=true` (Standard): Verwendet LuaJIT für bessere Performance - `USE_LUAJIT=false`: Verwendet Standard Lua 5.4 (Fallback) ### Docker Compose ```yaml environment: USE_LUAJIT: "true" # Standard: LuaJIT verwenden ``` ## Technische Details ### Fallback-System Das System implementiert ein intelligentes Fallback-System: 1. **LuaJIT mit vollständiger Funktionalität**: Wenn alle Module verfügbar sind 2. **LuaJIT mit Fallback**: Wenn das socket-Modul nicht verfügbar ist, werden externe Tools (netcat, wakeonlan) verwendet 3. **Lua 5.4**: Als letzter Fallback für maximale Kompatibilität ### Code-Architektur Der Socket-Fallback-Code wurde in das `network.lua`-Modul integriert, um eine bessere semantische Gruppierung zu erreichen: - **Zentralisierte Netzwerk-Verwaltung**: Alle Netzwerk- und Socket-Operationen sind in `network.lua` zusammengefasst - **Einheitliche API**: Konsistente Funktionen für alle Module (`is_socket_available()`, `is_sleep_available()`, `get_socket()`) - **Wartbarkeit**: Änderungen am Fallback-System müssen nur an einer Stelle vorgenommen werden - **Semantische Kohärenz**: Socket-Operationen sind logisch bei den Netzwerk-Utilities angesiedelt ### Socket-Modul-Kompatibilität Da LuaJIT nicht direkt mit lua5.4-socket kompatibel ist, wurde ein Fallback-System implementiert: - **Port-Checking**: Verwendet `netcat` anstelle von luasocket - **Wake-on-LAN**: Verwendet `wakeonlan` Tool anstelle von nativen Socket-Operationen - **Sleep-Operationen**: Verwendet `os.execute("sleep")` anstelle von `socket.sleep()` ## Verwendung ### Standard (LuaJIT) ```bash docker-compose up ``` ### Mit Standard Lua 5.4 ```bash USE_LUAJIT=false docker-compose up ``` ### Direkte Docker-Nutzung ```bash # LuaJIT (Standard) docker run auto-boot-ollama-host-luajit # Standard Lua 5.4 docker run -e USE_LUAJIT=false auto-boot-ollama-host-luajit ``` ## Vorteile 1. **Bessere Performance**: 35x schnellere Ausführung 2. **Rückwärtskompatibilität**: Funktioniert mit beiden Lua-Versionen 3. **Intelligentes Fallback**: Automatische Erkennung und Anpassung 4. **Einfache Konfiguration**: Einfache Umgebungsvariable zum Umschalten ## Kompatibilität - ✅ Alpine Linux 3.20 - ✅ Docker - ✅ Docker Compose - ✅ LuaJIT 2.1 - ✅ Lua 5.4 (Fallback) - ✅ Alle ursprünglichen Funktionen ## Troubleshooting ### Socket-Modul-Fehler Wenn Sie Fehler mit dem socket-Modul sehen, ist das normal bei LuaJIT. Das System verwendet automatisch Fallback-Methoden. ### Performance-Probleme Stellen Sie sicher, dass `USE_LUAJIT=true` gesetzt ist (Standard). ### Kompatibilitätsprobleme Falls Probleme auftreten, können Sie mit `USE_LUAJIT=false` auf Standard Lua 5.4 zurückwechseln.