{"id":15045928,"url":"https://github.com/denoland/serverless-coldstart-benchmarks","last_synced_at":"2025-10-19T21:32:16.407Z","repository":{"id":250151617,"uuid":"825853823","full_name":"denoland/serverless-coldstart-benchmarks","owner":"denoland","description":"Configuration, benchmarking scripts, and raw data for serverless cold start benchmarks.","archived":false,"fork":false,"pushed_at":"2024-07-24T21:03:54.000Z","size":18,"stargazers_count":15,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-30T06:11:15.636Z","etag":null,"topics":["aws-lambda","benchmarks","bun","deno","lambda","node","serverless"],"latest_commit_sha":null,"homepage":"https://deno.com/blog/aws-lambda-coldstart-benchmarks#methodologies","language":"Jupyter Notebook","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/denoland.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-08T16:19:23.000Z","updated_at":"2024-11-04T12:10:58.000Z","dependencies_parsed_at":"2024-07-25T14:09:53.072Z","dependency_job_id":null,"html_url":"https://github.com/denoland/serverless-coldstart-benchmarks","commit_stats":null,"previous_names":["denoland/serverless-coldstart-benchmarks"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denoland%2Fserverless-coldstart-benchmarks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denoland%2Fserverless-coldstart-benchmarks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denoland%2Fserverless-coldstart-benchmarks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denoland%2Fserverless-coldstart-benchmarks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/denoland","download_url":"https://codeload.github.com/denoland/serverless-coldstart-benchmarks/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237221176,"owners_count":19274447,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws-lambda","benchmarks","bun","deno","lambda","node","serverless"],"created_at":"2024-09-24T20:52:28.671Z","updated_at":"2025-10-19T21:32:15.955Z","avatar_url":"https://github.com/denoland.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cold Start Serverless Benchmarks\n\nThis repository contains cold start benchmarks for server-side JavaScript\napplications, executed using different JavaScript runtimes, and deployed via\nDocker images on AWS Lambda using\n[AWS Lambda Web Adapter](https://github.com/awslabs/aws-lambda-web-adapter). For\nmore information, read our\n[blog post summary](https://deno.com/blog/aws-lambda-coldstart-benchmarks).\n\n# Benchmark Results\n\nResults are discussed in the\n[blog post](https://deno.com/blog/aws-lambda-coldstart-benchmarks). Raw data is\navailable in the [raw_results](raw_results) directory.\n\n#### AWS Lambda configuration:\n\n- Region: us-west2\n- Memory: 512MB\n\n#### Runtime versions:\n\n- Deno: 1.45.2\n- Bun: 1.1.19\n- Node.js: 22.5.1\n\n# How To Run Benchmarks\n\n## Build Docker Images\n\nExpress app:\n\n```bash\ndocker build --rm -t deno_express_app:latest -f docker/deno.dockerfile ./apps/express\ndocker build --rm -t node_express_app:latest -f docker/node.dockerfile ./apps/express\ndocker build --rm -t bun_express_app:latest -f docker/bun.dockerfile ./apps/express\n```\n\nFastify app:\n\n```bash\ndocker build --rm -t deno_fastify_app:latest -f docker/deno.dockerfile ./apps/fastify\ndocker build --rm -t node_fastify_app:latest -f docker/node.dockerfile ./apps/fastify\ndocker build --rm -t bun_fastify_app:latest -f docker/bun.dockerfile ./apps/fastify\n```\n\nHono app:\n\n```bash\ndocker build --rm -t deno_hono_app:latest -f docker/deno.dockerfile ./apps/hono\ndocker build --rm -t node_hono_app:latest -f docker/node.dockerfile ./apps/hono\ndocker build --rm -t bun_hono_app:latest -f docker/bun.dockerfile ./apps/hono\n```\n\n## Run Benchmarks\n\nOnce the Lambda functions are created using the Docker images, you can use the\n[run_benchmark.ts](tools/run_benchmark.ts) script to run the benchmark for each\nfunction. You'll need to provide the function ARN, the function invoke URL, and\nthe number of invocations as arguments.\n\nThe script forces a cold start for each iteration, parses `Init Duration` from\nCloudWatch, and writes the results to stdout in CSV format.\n\ne.g.\n\n```bash\n./tools/run_benchmark.ts arn:aws:lambda:us-west-2:123456789123:function:express_app_on_deno https://e6mpazwlnt5ykocyq3qcobotp40zdlpr.lambda-url.us-west-2.on.aws 25\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenoland%2Fserverless-coldstart-benchmarks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdenoland%2Fserverless-coldstart-benchmarks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenoland%2Fserverless-coldstart-benchmarks/lists"}