Show HN: Hiraeth – AWS Emulator

github.com

40 points by ozarkerD 3 days ago

With the recent changes around Localstack pricing/licensing I've been hunting for alternatives. I decided that it might be a fun experiment to try rolling my own. SQS is a service I use heavily so I chose that as the first service to implement. I have more services planned and in development.

A few things I think are cool:

4MB Docker Image Size

Instant Startup

AWS Sigv4 Authentication

A little admin UI that can be helpful for development/troubleshooting

Most of the SQS API implemented, the rest will soon follow :)

michalc 2 days ago

> the rest will soon follow

If you’re looking for requests ;-), I would love an ECS (and specifically Fargate) emulator that actually ran Docker containers locally as though they were in ECS

  • ozarkerD 2 hours ago

    That's a great idea i've had floating around in my head too!

great_psy 3 days ago

What kind of things would you use this to simulate ?

Is this to make sure services are wired up with permission and communicate properly before you deploy or what is the use case ?

Also, why not have a dev environment where you can test things on the real thing (ideally with smaller size instances to save $)

  • giza182 3 days ago

    Intergration testing is one. You can run this in your ci/locally to speed up tests. Or just for local dev. We do this with localstack[1]

    [1] https://www.localstack.cloud/

  • ozarkerD 3 days ago

    Yep integration is my use case as well. It’s nice to not have to worry about setting up real infrastructure for testing client code, parallel execution if you’re on a team, clearing out state each run, etc…

MouadNos 1 day ago

what compatibility surface is prioritized first for SQS edge cases

  • ozarkerD 2 hours ago

    Good question. I'm driving mostly off of my own use cases currently, so AWS SDK/CLI/Terraform compatibility. Response formats, codes, messages are best effort, there's a little work to be done there still. There's some gaps around request validation still too.

    The idea is to build up a good suite of integration/regression tests as cases are identified by myself or the community (if there is one) through development.

Carrok 3 days ago

Looks cool! Now add (simulated) billing. ;)

  • ryanisnan 3 days ago

    Easy... $<INSERT_VERY_LARGE_RANDOM_NUMBER_HERE>

  • ozarkerD 2 hours ago

    Maybe a cost explorer emulator would be a fun april fools joke someday :D