Documentation du projet sdk_storage
Ce dossier documente l'API HTTP, l'architecture et les décisions techniques.
API
- POST
/store: stocke une valeur hex pour une clé hex 64 chars,ttloptionnel (secondes). Quand--permanentest passé au binaire, l'absence dettlrend la donnée permanente. - GET
/retrieve/:key: retourne{ key, value }oùvalueest encodée en hex.
Architecture
- Service
StorageService(voirsrc/lib.rs) encapsule la logique de stockage, récupération et nettoyage TTL. src/main.rsdémarre Tide avec étatStorageServiceet une boucle de nettoyage périodique (60s).
Concepts de Base
- Clés : Format hexadécimal 64 caractères (32 octets)
- Valeurs : Format hexadécimal
- TTL : Durée de vie en secondes, sérialisé dans
*.meta(UNIX timestamp secondes) - Persistance : Système de fichiers, sous-dossiers par préfixe de clé
Fonctionnalités Techniques
- StorageService : Abstraction des opérations de stockage
- TTL : Sérialisé dans
*.meta(UNIX timestamp secondes) - Nettoyage : Parcours des dossiers, suppression données expirées
- Journalisation : Sorties standard, intégration possible avec superviseur
Tests
- Tests unitaires : Recommandés sur
StorageServicevia répertoires temporaires - Tests d'intégration : HTTP optionnels via client HTTP
- Stratégies : Cas TTL min/max, clés invalides, conflits de clé
Voir aussi:
architecture.mdconfiguration.mdtests_monitoring.mdreseau_de_relais.mddeveloppement.mddepannage.mdperformance.mdapi_json_spec.mdapi_contrats.mdrelease_guide.mdci_docker_registry.md
REX technique
-
Docker
- Build local:
docker build -t sdk_storage:local . - Run:
docker run --rm -p 8081:8081 -v $PWD/storage:/app/storage sdk_storage:local - Par défaut
--permanentest activé via CMD, override possible:docker run ... sdk_storage -- --permanent
- Build local:
-
Refactor initial de la logique depuis
main.rsverslib.rspour testabilité et séparation des responsabilités. -
Durées TTL maintenant validées dans le handler, calcul d'expiration converti en
SystemTimeavant l'appel service.