Présentation
fakecloud est un émulateur local qui reproduit les API AWS sans nécessiter de compte, de jeton d’authentification ou d’abonnement payant. Le projet revendique la prise en charge de 105 services AWS et de 7 508 opérations, avec une conformité déclarée de 100 % sur les 3 932 opérations implémentées. Chaque variante de test générée à partir du modèle Smithy (248 557 au total) passe avec succès à chaque commit, garantissant que le comportement observé correspond aux spécifications officielles d’AWS.
Architecture et fonctionnement
L’émulateur s’exécute soit comme un binaire autonome (environ 19 Mo) soit via une image Docker, et écoute sur localhost à un port configurable. Les applications utilisent les SDK ou la CLI AWS habituels en redirigeant simplement l’endpoint‑url vers http://localhost:4566. En parallèle, fakecloud fournit des SDK de test (TypeScript, Python, Go, PHP, Java, Rust) qui exposent des points d’accès /_fakecloud/* pour réinitialiser l’état, interroger l’historique des événements et contrôler les processus asynchrones après l’appel des API réelles.
# Installation rapide (binary ou Homebrew)
$ curl -fsSL https://fakecloud.dev/install.sh | bash
# ou
$ brew install fakecloud
# Démarrage de l’émulateur
$ fakecloud
# Exemple d’utilisation avec la CLI AWS
$ aws --endpoint-url http://localhost:4566 sqs create-queue \
--queue-name my-queueConformité et validation
Le projet s’appuie sur le framework Smithy d’AWS pour générer automatiquement les tests de conformité. Chaque opération API possède plusieurs variantes de paramètres, totalisant 248 557 cas de test qui sont exécutés en continu. Les résultats affichent un taux de réussite de 100 %, ce qui indique que chaque appel renvoie les mêmes structures de réponse que le service AWS réel, y compris les codes d’erreur et les formats de payload (JSON, XML, etc.). De plus, plus de trente intégrations inter‑services sont implémentées : notifications S3 vers SNS, flux DynamoDB vers Lambda, déclencheurs Cognito, etc., ce qui permet de valider des scénarios de bout en bout sans quitter l’environnement local.
Performances et comparaison avec LocalStack
Par rapport à LocalStack Community, fakecloud présente des temps de démarrage d’environ 300 ms contre 3 s, une consommation mémoire au repos de 10 MiB contre 150 MiB, et une taille d’installation de 19 Mo contre près de 1 Go pour l’image Docker. Ces différences proviennent d’une architecture monolithique qui évite les conteneurs multiples et d’une implémentation directe des protocoles AWS (REST, Query, JSON, XML) sans couche d’abstraction supplémentaire. Le modèle d’utilisation reste identique : les développeurs continuent d’écrire du code contre les SDK officiels, ce qui réduit le risque d’incompatibilité lors du passage à l’environnement de production.