deniz.in

Markets

Weather

Loading weather

· via Hacker News – Front Page (native)

AWS releases official local emulator of its APIs for testing and CI

AWS has open-sourced a local emulator that serves AWS API endpoints on a laptop or CI server, so code can be tested against emulated services without an AWS account or additional service fees.

AWS releases official local emulator of its APIs for testing and CI

AWS has released an official, open-source emulator that imitates its service APIs on a local machine. The project, published as the aws/aws-emulator repository on GitHub and surfaced on Hacker News's front page under the pointed title "AWS Finally Built Its Own AWS Emulator", lets developers run code against emulated AWS endpoints on a laptop, a development server or in CI — with no AWS account and no additional service fee.

How it works

According to the project's README, the emulator is a local program that serves an AWS API endpoint. It has no graphical interface: you start it, set environment variables that point the AWS CLI or an AWS SDK at its endpoint instead of AWS, and run your code as usual. Requests land on emulated resources rather than real ones.

There is also an embedded mode aimed at Rust tests. You add the emulator as a dev-dependency and wire its HTTP client directly into your SDK client — no endpoint URL, certificate or environment variables to manage — with one isolated emulator per test.

AWS positions the tool strictly for building and testing: not for production workloads and not for security testing. The emulator itself carries no extra service fee; you pay only for real AWS resources when you actually deploy.

Three ways to run it

The README documents three quick-start paths:

  • With an AI coding agent: install an aws-emulator skill via the AWS agent toolkit (requires AWS CLI 2.35.0 or later) and let the agent handle setup — a notable signal that AWS expects coding agents to be part of the workflow.
  • Server mode: on Linux, install the RPM or Debian package and run aws-emulator; on Windows and macOS, run a container built from a short Dockerfile.
  • Embedded mode: the in-process Rust option described above.

Fidelity is tracked in the open

Coverage varies by service. Each release publishes fidelity scores showing how closely the emulator matches real AWS, and known gaps live in the repository itself, split between directories for things that do not work and things that have since been fixed. Bug reports are welcome — ideally naming the service, operation, SDK and version, the request sent and how the response differed — but the repository does not accept pull requests.

The 100 GB build caveat

Most users will install a prebuilt package, but building from source, which embedded mode requires, is heavier: a Rust toolchain with Cargo, a C compiler such as GCC or clang, a multi-core machine and at least 100 GB of free disk for the target directory, because the workspace holds one crate per AWS service. Source builds are supported on Linux (x86_64 and aarch64); Windows and macOS users are pointed at the Docker path. The router serves HTTPS on 127.0.0.1:9297 with a self-signed certificate. For CI, the README recommends sharing one CARGO_TARGET_DIR across projects, caching the target directory or using sccache, and pinning the emulator to a release commit.

Telemetry is on by default

The emulator collects and reports usage data to AWS unless told otherwise. AWS says the data is minimised — records never include request or response contents, code, credentials or personal data — and is not shared with third parties. It can be switched off per process with --telemetry off, per shell via EMULATOR_TELEMETRY=off, permanently through a config.toml setting, or through an option in embedded mode. Anyone shipping a tool that embeds the emulator is asked to tell their users about the telemetry and give them a way to disable it.

Licensing is permissive: CC0 1.0 Universal for the project, with the vendored framework crates under Apache License 2.0.

Why it matters

Testing against real AWS has always carried friction: accounts, credentials, slow feedback loops and bills for resources spun up only to be torn down. Community-built emulators have filled that gap for years — the "Finally" in the Hacker News title is a nod to that wait — but an official tool changes the calculus, because the vendor that defines the APIs is also publishing fidelity scores and tracking gaps in the open. For CI in particular, a local endpoint means parallel, isolated and reproducible test runs with zero cloud cost and no credentials to leak into a build. And the Rust-first embedded mode, with a fresh isolated emulator per test, suggests where AWS thinks local testing is heading: from pointing clients at a fake server toward deterministic in-process doubles.

  • #aws
  • #cloud
  • #testing
  • #developer-tools
  • #open-source

Related posts