HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
getmoto
moto
Python2013–2026
getmoto / moto

moto

A library that allows you to easily mock out tests based on AWS infrastructure.

10Distinct people
10Mentions
1Explicit recommenders
8.7KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A library that allows you to easily mock out tests based on AWS infrastructure.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

Yeah, you are right. It is perfectly possible to wrap awscli by shell script and do exactly the same thing with what this tool does. However, generally speaking, it will be…

achiku used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

Moto: Mock AWS Services direct repository link

Read the discussion on HN. A full-thread summary is not available yet.

AWS emulator direct repository linkDebated

The discussion centers on AWS's release of an AI-generated local emulator, with users debating its utility as a replacement for LocalStack versus skepticism about its maturity and long-term maintenance. Strong disagreement exists regarding whether the tool is a polished production asset or a hastily assembled experiment lacking critical features like IAM emulation and state reset capabilities.

263 readable replies · Supporting reply 1 · Supporting reply 2 · Supporting reply 3 · Supporting reply 4

Mentions over time

HN mentions by year10 dated mentions

Observed mentions: 2013-03-19 16:56:48 UTC to 2026-03-23 20:08:58 UTC.

01232013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments20132014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC110
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC000
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC101
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC101
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC000
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC101
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC000
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC000
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC303
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC110
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC000
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC000
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

What Hacker News says

10 sources
zJayv·Dec 20, 2022Submission

Ask HN: Programs that saved you 100 hours? (2022 edition)

I've asked this previously: https://news.ycombinator.com/item?id=22849208 But a few years have past and want to see what's emerged since. Although can be new to you vs. released in 2021 or 2022 necessarily. Things I've come across in the meantime: * mock AWS services https://github.com/spulec/moto * query cloud services https://github.com/turbot/steampipe * munge CSV https://github.com/johnkerl/miller https://github.com/BurntSushi/xsv * page json https://github.com/PaulJuliusMartinez/jless * text to tree structure [I use this as a hack to version control my music library] https://github.com/birchb1024/frangipanni
470 points · Open discussion
Not a full solution, but when I was doing this I really got to love the awslogs utility: https://github.com/jorgebastida/awslogs It allows you to stream Cloudwatch logs from the command line, so you can grep them, save them to files, etc... (The web based Cloudwatch interface is terrible.) Another suggestion is to try to modularize the core business logic in your lambda such that you separate the lambda-centric stuff from the rest of it. Obviously, though, if "the rest of it" is hitting other AWS services, you're going to hit the same testing roadblock. Or you can try mocking, which may or may not provide much value for you. There's a python library for that, (moto), but it's not 100% up to date wrt AWS services/interfaces, last I had checked. Might be worth a try though. https://github.com/spulec/moto
In Ask HN: Does anyone else find the AWS Lambda developer experience frustrating?
Started using Lambda 2 years ago now and my thoughts of it have evolved over time. I was initially frustrated by it but a lot of the pain points have disappeared over time (especially no Python 3 support; now supports 3.6). Some random thoughts and gotchas in no particular order: 1. Don't do your own deployments. Use Serverless.js (https://github.com/serverless/serverless). It's in JS but that doesn't lock you into the nodejs lambdas, it can deploy to any of the runtimes. 2. Use Zappa if you want to host a "serverless website". But frankly, serverless websites are only for hobby projects right now. 3. CPU vs Memory scaling sucks. You have to scale both at once; you can't do high CPU/low memory. This hurts the wallet for compute-intensive tasks. 4. 5-min hard timeout on all functions. Don't use Lambda for long-running tasks. 5. Low-CPU lam
Read the rest
bdas (128MB tier) are terrible at cold starts if you have lots of stuff to import (which WILL BE THE CASE for Zappa applications!). If a cold start exceeds your timeout (which defaults to 30 sec), your Lambda will never complete and never get out of cold start. 6. If you're playing with S3, PUTs will hurt your wallet. A common application of Lambda (the famed "resize images" example) has a workflow that looks like this: GET on API gateway, PUT to s3, triggers an event which fires a Lambda, lambda processes payload, PUTs result back to S3. If processing your payload is fast, the PUTs in this case could be the most expensive part of your flow. 7. X-Ray is atrociously confusing. 8. No cloudwatch metrics for memory usage. Had to do my own using log metrics. Dumb. 9. There's a cool versioning system for the code artifact, kinda like ECS has. It's really nice to use except that unlike ECS it doesn't have native lifecycle rules, which means you have to do your own cleanups. Dumb. 10. Lambda patterns can be implemented more cheaply and more efficiently using tasks queues and autoscaling EC2s. Amazon's "efficient" compute allocation is outweighed by the margins on Lambda pricing. As with other Amazon services, you're paying for the system to be managed. 11. Aurora Serverless is super interesting, but FWICT nowhere near ready for prime time. 12. API gateway is a solution looking for a problem. If you have to use it (eg. you must trigger your lambda through an http request and you don't want to run a web server), use it in proxy mode. 13. Golang lambdas are very promising. I want to try them out. 14. There's a native canary system in Lambda/APIGW nowadays. Also want to try it out. Had to roll my own before it existed and now too scared to touch the production system. 15. If you hit concurrency issues, your problem might not be load, it might be throughput. Is your DB slower than usual? Common pattern: Increase in Lambda requests hitting your DB, slows your DB down, which in turn slows your lambdas down, which causes you to hit concurrency limits. All these metrics are tightly related. 16. Your tests should not assume a Lambda environment unless your app actually depends on the lambda environment (it generally shouldn't). 17. Use this thing: https://github.com/lambci/docker-lambda - Among other things, you can use it to build binary libs/dependencies you want to run on Lambda (cairo for example). 18. Use this thing: https://github.com/spulec/moto -- And also this thing: https://github.com/localstack/localstack 19. Cloudwatch logs suck. If you want your app to be debuggable, make sure you know how to find logs for individually-triggered lambdas (eg. if you're thumbnailing, you should be able to trace the logs for that one thumbnail back into cloudwatch easily) 20. Use Sentry. https://sentry.io/ - You can use the Sentry extra context parameters to help auditing various things (lambda environment, aws api results you get at runtime, etc)
In Ask HN: How has your experience with AWS Lambda been?
achiku·Aug 25, 2015Recommendation phrase
Yeah, you are right. It is perfectly possible to wrap awscli by shell script and do exactly the same thing with what this tool does. However, generally speaking, it will be more and more difficult to test and maintain as a tool becomes large, especially if it's written in shell script. Python has awesome testing library (I love py.test), and the most importantly, has really cool AWS mock library moto (https://github.com/spulec/moto). These are pretty much why I picked Python, rather than bash alias or shell script for this tool.
In Jungle – Simple CLI for AWS operations

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.