Show HN: Hiraeth – AWS Emulator
github.comWith 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 :)
> 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
That's a great idea i've had floating around in my head too!
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 $)
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/
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…
what compatibility surface is prioritized first for SQS edge cases
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.
Works perfectly.
Awesome, appreciate the feedback!
Looks cool! Now add (simulated) billing. ;)
Easy... $<INSERT_VERY_LARGE_RANDOM_NUMBER_HERE>
Maybe a cost explorer emulator would be a fun april fools joke someday :D
Another SQS stand-in is smoothmq
https://github.com/poundifdef/smoothmq