Зачем нужен Fakecloud?

Fakecloud создает локальное AWS окружение, которое ведёт себя как реальная инфраструктура, а не как mock. Приложение использует обычный AWS SDK, CLI и инструменты Infrastructure as Code. В отличие от LocalStack Community, не нужны ни аккаунт, ни токен авторизации, ни платный план — только базовая разработка локально.

SDKs делают этот workflow удобнее, не уже. Запусти Fakecloud, запусти код, который реально доставляется в продакшен, затем проверь результаты (отправленные письма, сообщения, вызовы функций) через инструменты тестирования. Можно принудительно вызвать асинхронные AWS операции по требованию.

Построен для реалистичного локального тестирования

Настоящие API для приложения, специализированные инструменты для тестов.

Рабочий процесс

Тестируй то, что реально делает приложение

Используй стандартные AWS клиенты против localhost, затем проверь результаты через Fakecloud — вместо комбинирования polling, фиксур и приватных хуков для тестирования.

SDKs

Встроенные клиенты для тестов

TypeScript, Python, Go, PHP, Java и Rust SDKs оборачивают эндпоинты /_fakecloud/* для сброса состояния, проверок и ручного управления асинхронными обработчиками — после того как приложение уже использовало обычные AWS API.

Покрытие

105 сервисов AWS

S3, SQS, SNS, EventBridge, EventBridge Pipes, EventBridge Scheduler, Lambda, EC2, DynamoDB, IAM, STS, Organizations, SSM, Secrets Manager, CloudWatch Logs, CloudWatch (Metrics & Alarms), KMS, CloudFormation, Cloud Control API, SES, Cognito User Pools, Cognito Identity, Kinesis, Firehose, RDS, RDS Data API, Aurora DSQL, Resource Groups, Resource Groups Tagging API, ElastiCache, MemoryDB, EKS, Cloud Map, Step Functions, API Gateway v1 (REST), API Gateway v2 (HTTP), Bedrock, Bedrock Agent, Bedrock Agent Runtime, Bedrock Runtime, ECR, ECS, Elastic Load Balancing v2, CloudFront, Route 53, WAF v2, Application Auto Scaling, Athena, ACM, и Glue.

Тестирование

Проверка конформности

Истинная 100% конформность во всех 3 932 реализованных API операциях: 248 557 из 248 557 вариантов тестов, сгенерированных из Smithy-моделей, проходят при каждом коммите. Поддержка сквозными интеграционными тестами с официальными AWS SDK.

Реальное поведение

Кросс-сервисные потоки подключены

Более 30 интеграций между сервисами: S3 notifications, SNS fanout, EventBridge targets, DynamoDB Streams, CloudWatch Logs subscriptions, Cognito triggers, Step Functions task integrations, API Gateway → Lambda и многое другое — всё обеспечивает реальные взаимодействия между сервисами.

Простота

Без авторизации, без привязки, без платных тарифов

Запусти один бинарник или Docker image, используй любые dummy credentials, оставь весь workflow локальным без входа на чужую платформу.

SDKs для проверок в тестах

Продолжай использовать AWS SDK в приложении. Используй Fakecloud SDKs, когда тестам нужна видимость и управление на уровне эмулятора.

TypeScript

npm install fakecloud

Смотри SES письма, SNS сообщения, SQS очереди, Lambda invocations, Cognito confirmation codes и многое другое.

Посмотреть на npm

Python

pip install fakecloud

Асинхронные и синхронные клиенты для pytest или интеграционных тестов на уровне приложения с тем же покрытием интроспекции и симуляции.

Посмотреть на PyPI

Go

go get github.com/faiscadev/fakecloud/sdks/go

Context-friendly помощники для сброса состояния, истории событий, SES inbound симуляции и остальной поверхности тестирования Fakecloud.

Посмотреть на pkg.go.dev

Rust

cargo add fakecloud-sdk

Нативный Rust клиент для тестов, которым нужны сброс состояния, инспекция данных и прямой доступ к поверхности интроспекции Fakecloud.

Посмотреть на crates.io

Быстрый старт

Запусти Fakecloud, направь AWS клиент на localhost, затем проверь, что произошло.

# Установка (Cargo или Docker не требуются)
$ curl -fsSL https://fakecloud.dev/install.sh | bash
# или: brew install fakecloud
$ fakecloud

# Приложение использует обычный AWS SDK против localhost
$ aws --endpoint-url http://localhost:4566 sqs create-queue \
     --queue-name my-queue

# Тесты могут проверить состояние через Fakecloud SDK
$ npm install fakecloud

Сравнение с альтернативами

Если нужен полностью локальный workflow с реальными AWS API и без требований к аккаунту, Fakecloud создан именно для этого. SDKs — это дополнительное преимущество для тестирования, а не замена этому подходу.

Fakecloud LocalStack Community
Лицензия AGPL-3.0 Proprietary
Авторизация требуется Нет Да (аккаунт + токен)
Коммерческое использование Бесплатно Только платные планы
Docker требуется Нет (standalone binary) Да
Время старта ~300ms ~3s
Память в idle ~10 МиБ ~150 МиБ
Размер установки ~19 МБ binary ~1 ГБ Docker image
AWS сервисы 46 с истинной 100% конформностью 30+ (beyond Community только платно)
Test assertion SDKs TypeScript, Python, Go, PHP, Java, Rust Python, Java
Cognito User Pools 122 операции Только платно
SES v2 110 операций Только платно
SES inbound email Реальные receipt rule actions Сохраняются, но никогда не выполняются
RDS 163 операции, PostgreSQL/MySQL/MariaDB через Docker, PostgreSQL aws_lambda extension Только платно
ElastiCache 75 операций, Redis и Valkey через Docker Только платно
MemoryDB 45 операций, полный control plane Только платно
EKS Cluster control plane (batch 1) Только платно
API Gateway v2 103 операции, HTTP APIs + developer portals + JWT/Lambda authorizers Только платно
Bedrock 214 операций в 4 API (Bedrock + Bedrock Runtime + Bedrock Agent + Bedrock Agent Runtime) Недоступно

Поддерживаемые сервисы

Каждый реализованный API покрыт конформностным и поведенческим тестированием, набор сервисов оптимизирован для локальной разработки и интеграционных тестов.

S3
REST protocol · XML
SQS
Query protocol · XML
SNS
Query protocol · XML
EventBridge
JSON protocol
EventBridge Scheduler
JSON protocol
SSM
JSON protocol
DynamoDB
JSON protocol
IAM
Query protocol
STS
Query protocol
Lambda
REST protocol · JSON
Secrets Manager
JSON protocol
CloudWatch Logs
JSON protocol
KMS
JSON protocol
CloudFormation
Query protocol
SES
REST + Query protocol
Cognito User Pools
JSON protocol
Kinesis
JSON protocol
RDS
Query protocol
ElastiCache
Query protocol
MemoryDB
JSON 1.1 protocol
EKS
REST-JSON protocol
Step Functions
JSON protocol
API Gateway v1 (REST)
REST protocol · JSON
API Gateway v2
REST protocol · JSON
Bedrock
REST protocol · JSON
Bedrock Runtime
REST protocol · JSON
Bedrock Agent
REST protocol · JSON
Bedrock Agent Runtime
REST protocol · JSON
ECR
REST protocol · JSON
ECS
JSON protocol
Elastic Load Balancing v2
Query protocol
CloudFront
REST protocol · XML
Route 53
REST protocol · XML
ACM
JSON protocol
ACM PCA
JSON protocol
Application Auto Scaling
JSON protocol
WAF v2
JSON protocol
Athena
JSON protocol
Glue
JSON protocol
Cognito Identity
JSON protocol
CloudWatch (Metrics & Alarms)
Query protocol
Firehose
JSON protocol
EC2
Query protocol · XML
Organizations
JSON protocol
Cloud Control API
JSON protocol
EventBridge Pipes
REST protocol · JSON
RDS Data API
REST protocol · JSON
Aurora DSQL
REST protocol · JSON
Resource Groups
REST protocol · JSON
Resource Groups Tagging API
JSON protocol

Кто использует Fakecloud

Проект в ранней стадии, список только начинает расти. Используешь Fakecloud в CI, локальной разработке или тестах? Добавь свою команду на GitHub. Цифры ниже — это загрузки пакетов и звёзды, а не количество пользователей.

npm downloads · PyPI downloads · Homebrew installs · crates.io downloads · GitHub stars

Посмотреть adopters · Добавить свою команду