SDK setup
Install the first-party fakecloud SDK in TypeScript, Python, Go, PHP, Java, or Rust.
fakecloud ships first-party SDKs for test assertions in six languages. They wrap the /_fakecloud/* introspection and configuration endpoints into ergonomic helpers.
These SDKs are not the AWS SDK. Your application code still uses the normal AWS SDK (boto3, aws-sdk-js, etc.) to talk to fakecloud over the standard AWS wire protocol. The fakecloud SDK is what your tests use to assert on what happened and configure simulation behavior.
TypeScript
npm install fakecloudimport { FakeCloud } from "fakecloud";
const fc = new FakeCloud(); // defaults to http://localhost:4566
await fc.reset();
const { emails } = await fc.ses.getEmails();Python
pip install fakecloudfrom fakecloud import FakeCloud
fc = FakeCloud()
fc.reset()
emails = fc.ses.get_emails()Async variant:
from fakecloud import AsyncFakeCloud
async with AsyncFakeCloud() as fc:
await fc.reset()
emails = await fc.ses.get_emails()Go
go get github.com/faiscadev/fakecloud/sdks/goimport "github.com/faiscadev/fakecloud/sdks/go/fakecloud"
fc := fakecloud.New("http://localhost:4566")
fc.Reset()
emails, _ := fc.SES.GetEmails()PHP
composer require fakecloud/fakeclouduse FakeCloud\FakeCloud;
$fc = new FakeCloud(); // defaults to http://localhost:4566
$fc->reset();
$emails = $fc->ses()->getEmails()->emails;Java
// build.gradle.kts
testImplementation("dev.fakecloud:fakecloud:0.9.2")import dev.fakecloud.FakeCloud;
FakeCloud fc = new FakeCloud(); // defaults to http://localhost:4566
fc.reset();
var emails = fc.ses().getEmails().emails();Rust
cargo add fakecloud-sdkuse fakecloud_sdk::FakeCloudClient;
let fc = FakeCloudClient::new("http://localhost:4566");
fc.reset().await?;
let invocations = fc.bedrock().get_invocations().await?;What each SDK covers
All six SDKs wrap the same core surface:
- Reset:
reset()/reset(service)— clear state between tests - Per-service introspection: getters for recorded messages, emails, invocations, etc.
- Simulation: configure Bedrock response rules, inject faults, tick time-based processors (TTL, rotation, lifecycle)
- Health: ping fakecloud to verify it's reachable
For a full method list per SDK, see the README in each SDK's directory on GitHub.