Un petit serveur proxy de mise en cache (GET-only) écrit en Python.
Ce dépôt fournit une application simple qui relaie les requêtes vers un serveur d'origine et met en cache les réponses localement pour accélérer les requêtes suivantes.
- Python 3.8 ou plus
- pip
- (optionnel) virtualenv/venv
- Cloner le dépôt :
git clone https://github.com/Hermann002/cache_proxy.git/ caching-proxy
cd caching-proxy- (Recommandé) Créer et activer un environnement virtuel :
python -m venv env
source env/bin/activate- Installer le package en mode editable (installe le script CLI) :
pip install -e .Après l'installation, le script CLI caching-proxy est disponible dans l'environnement.
Le point d'entrée CLI est caching-proxy (défini dans setup.py).
- Démarrer le proxy (exemple) :
caching-proxy --port 8000 --origin http://dummyjson.com- Démarrer via le module (sans installation) :
python -m cache_proxy --port 8000 --origin http://dummyjson.com- Effacer le cache local :
caching-proxy --clear-cacheRemarques importantes :
- Les options
--portet--originsont requises sauf si vous utilisez--clear-cache. - L'argument
--origindoit commencer parhttp://ouhttps://.
Le cache est stocké dans le fichier .caching_proxy_cache.pkl à la racine du projet (variable CACHE_FILE).
Le CLI affiche le chemin absolu du fichier de cache au démarrage.
- Démarrez le proxy :
source env/bin/activate # si vous avez créé un venv
caching-proxy --port 8000 --origin https://httpbin.org- Testez via curl :
curl http://localhost:8000/getLa première requête sera transmise à l'origine et mise en cache ; les suivantes seront servies depuis le cache.
- Si vous obtenez des erreurs d'import, vérifiez que vous utilisez le bon environnement virtuel et que
le package a été installé (
pip install -e .). - Si le fichier de cache est corrompu ou que vous voulez repartir de zéro, utilisez
--clear-cache.
- Le proxy gère uniquement les requêtes GET pour l'instant.
- Améliorations possibles : gestion des en-têtes HTTP, invalidation fine du cache, stockage persistant plus robuste, tests automatisés.
Rédigé pour le projet d'exercice — instructions minimales pour installation et exécution.
- roadmap project url: https://roadmap.sh/projects/caching-server