
Security News
PyPI Expands Trusted Publishing to GitLab Self-Managed as Adoption Passes 25 Percent
PyPI adds Trusted Publishing support for GitLab Self-Managed as adoption reaches 25% of uploads
gal-gateway
Advanced tools
Gateway-Abstraktionsschicht - Provider-agnostisches API-Gateway-Konfigurations- und Transformationssystem in Python.
Definiere deine API-Gateway-Konfiguration einmal und deploye sie auf Envoy, Kong, APISIX, Traefik, Nginx, HAProxy oder anderen Gateways - ohne Vendor Lock-in.
gal import-config)gal check-compatibility, gal compare-providers)gal migrate)# Latest Version ziehen
docker pull ghcr.io/pt9912/x-gal:latest
# Direkt verwenden
docker run --rm ghcr.io/pt9912/x-gal:latest list-providers
# Mit Volume für Ausgabe
docker run --rm -v $(pwd)/generated:/app/generated \
ghcr.io/pt9912/x-gal:latest \
generate --config examples/gateway-config.yaml --provider envoy --output generated/envoy.yaml
# Spezifische Version
docker pull ghcr.io/pt9912/x-gal:v1.0.0
# Image bauen
docker build -t gal:latest .
# Verwenden
docker run --rm gal:latest list-providers
# Repository klonen
git clone https://github.com/pt9912/x-gal.git
cd x-gal
# Virtuelle Umgebung erstellen
python3 -m venv venv
source venv/bin/activate # Unter Windows: venv\Scripts\activate
# Abhängigkeiten installieren
pip install -e . # Laufzeit-Abhängigkeiten
pip install -e .[dev] # Mit Dev-Tools (pytest, black, flake8, isort)
# CLI ausführbar machen
chmod +x gal-cli.py
# Stabile Version von PyPI installieren
pip install gal-gateway
# CLI verwenden
gal --help
gal --version
# Mit Entwicklungs-Tools
pip install gal-gateway[dev]
# Spezifische Version
pip install gal-gateway==1.0.0
# Pre-Release von TestPyPI (optional)
pip install --index-url https://test.pypi.org/simple/ \
--extra-index-url https://pypi.org/simple/ \
gal-gateway
PyPI-Links:
# Alle Provider generieren
docker run --rm -v $(pwd)/generated:/app/generated gal:latest \
generate-all --config examples/gateway-config.yaml --output-dir generated
# Einzelnen Provider generieren
docker run --rm -v $(pwd)/generated:/app/generated gal:latest \
generate --config examples/gateway-config.yaml --provider kong --output generated/kong.yaml
# Mit Docker Compose
docker-compose up gal-generate # Generiert Envoy-Konfiguration
PROVIDER=kong docker-compose up gal-generate # Generiert Kong-Konfiguration
# Envoy-Konfiguration generieren
python gal-cli.py generate --config examples/gateway-config.yaml --provider envoy --output generated/envoy.yaml
# Oder das Convenience-Script verwenden
./generate-envoy.sh
# Für alle Provider generieren
python gal-cli.py generate-all --config examples/gateway-config.yaml
Das Beispiel enthält:
Jeder mit Transformationsregeln für:
| Provider | Status | Features |
|---|---|---|
| Envoy | ✅ | Vollständige Unterstützung mit Wasm/Lua |
| Kong | ✅ | Lua Plugins |
| APISIX | ✅ | Lua Scripts |
| Traefik | ✅ | Middleware |
| Nginx | ✅ | Open Source (ngx_http-Module) |
| HAProxy | ✅ | Erweiterte Load Balancing & ACLs |
x-gal/
├── gal/
│ ├── __init__.py
│ ├── config.py # Konfigurationsmodelle
│ ├── manager.py # Haupt-Orchestrator
│ ├── provider.py # Provider-Interface
│ ├── providers/
│ │ ├── __init__.py
│ │ ├── envoy.py
│ │ ├── kong.py
│ │ ├── apisix.py
│ │ ├── traefik.py
│ │ ├── nginx.py
│ │ └── haproxy.py
│ └── transformation/
│ ├── __init__.py
│ ├── engine.py
│ └── generators.py
├── gal-cli.py # CLI-Tool
├── examples/
│ └── gateway-config.yaml
├── tests/
└── docs/
# Konfiguration generieren
python gal-cli.py generate --config CONFIG --provider PROVIDER --output FILE
# Konfiguration validieren
python gal-cli.py validate --config CONFIG
# Für alle Provider generieren
python gal-cli.py generate-all --config CONFIG --output-dir OUTPUT
# 🚀 Provider-Config zu GAL importieren (v1.3.0)
python gal-cli.py import-config --provider envoy --input envoy.yaml --output gal-config.yaml
python gal-cli.py import-config --provider kong --input kong.yaml --output gal-config.yaml
python gal-cli.py import-config --provider apisix --input apisix.yaml --output gal-config.yaml
python gal-cli.py import-config --provider traefik --input traefik.yaml --output gal-config.yaml
python gal-cli.py import-config --provider nginx --input nginx.conf --output gal-config.yaml
python gal-cli.py import-config --provider haproxy --input haproxy.cfg --output gal-config.yaml
# 🔍 Provider-Kompatibilität prüfen (v1.3.0)
# Einzelnen Provider prüfen
python gal-cli.py check-compatibility --config gal-config.yaml --target-provider envoy
# Alle Provider vergleichen
python gal-cli.py compare-providers --config gal-config.yaml
# Mit detaillierter Ausgabe
python gal-cli.py check-compatibility --config gal-config.yaml --target-provider traefik --verbose
# 🔀 Zwischen Providern migrieren (v1.3.0)
# Interaktiver Modus (Prompts für alle Parameter)
python gal-cli.py migrate
# Nicht-interaktiver Modus
python gal-cli.py migrate \
--source-provider kong \
--source-config kong.yaml \
--target-provider envoy \
--output-dir ./migration \
--yes
# Konfigurationsinformationen anzeigen
python gal-cli.py info --config CONFIG
# Verfügbare Provider auflisten
python gal-cli.py list-providers
# Mit Logging (für Debugging)
python gal-cli.py --log-level debug generate --config CONFIG --provider envoy
# Log Levels: debug, info, warning (default), error
python gal-cli.py --log-level info generate-all --config CONFIG
GAL unterstützt strukturiertes Logging mit verschiedenen Verbosity-Levels:
--log-level debug: Detaillierte Debug-Informationen (Parsing, Validierung, Generation)--log-level info: Haupt-Operationen und Zusammenfassungen--log-level warning: Warnungen und nicht-kritische Probleme (Standard)--log-level error: Nur kritische FehlerBeispiel:
# Debugging aktivieren
docker run --rm ghcr.io/pt9912/x-gal:latest \
--log-level debug \
generate --config examples/gateway-config.yaml --provider envoy
# Standard-Build
docker build -t gal:latest .
# Mit spezifischer Version
docker build -t gal:1.0.0 .
# Standard CLI (interaktiv)
docker-compose up gal
# Development mit Live-Reload
docker-compose --profile dev up gal-dev
# Konfiguration generieren
docker-compose --profile generate up gal-generate
# Konfiguration validieren
CONFIG_FILE=examples/gateway-config.yaml docker-compose --profile validate up gal-validate
PROVIDER: Gateway-Provider (envoy, kong, apisix, traefik, nginx, haproxy)CONFIG_FILE: Pfad zur KonfigurationsdateiOUTPUT_DIR: Ausgabeverzeichnis für generierte Configs# Alle Tests
pytest
# Mit Coverage
pytest --cov=gal --cov-report=term-missing
# Spezifische Test-Datei
pytest tests/test_providers.py -v
# Mit Logging
pytest -v --log-cli-level=DEBUG
# Formatierung mit black
black .
# Import-Sortierung mit isort
isort .
# Linting mit flake8
flake8 .
Das Projekt verwendet GitHub Actions für kontinuierliche Integration:
Tests (.github/workflows/test.yml)
Docker Build (.github/workflows/docker-build.yml)
Release (.github/workflows/release.yml)
# Version Tag erstellen
git tag v1.0.1
git push origin v1.0.1
# GitHub Actions erstellt automatisch:
# - GitHub Release mit Changelog
# - Docker Images auf ghcr.io
# - Distribution Packages
Beiträge sind willkommen! Bitte:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)MIT - siehe LICENSE für Details.
Dietmar Burkard - Gateway Abstraction Layer
⭐ Wenn dir dieses Projekt gefällt, gib ihm einen Stern auf GitHub!
FAQs
Gateway Abstraction Layer - Provider-agnostic API Gateway configuration system
We found that gal-gateway demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
PyPI adds Trusted Publishing support for GitLab Self-Managed as adoption reaches 25% of uploads

Research
/Security News
A malicious Chrome extension posing as an Ethereum wallet steals seed phrases by encoding them into Sui transactions, enabling full wallet takeover.

Security News
Socket is heading to London! Stop by our booth or schedule a meeting to see what we've been working on.