{"id":13432565,"url":"https://github.com/klothoplatform/klotho","last_synced_at":"2025-03-25T07:09:35.951Z","repository":{"id":65029447,"uuid":"538612842","full_name":"klothoplatform/klotho","owner":"klothoplatform","description":"Klotho - write AWS applications at lightning speed","archived":false,"fork":false,"pushed_at":"2024-08-22T18:26:25.000Z","size":6077,"stargazers_count":1141,"open_issues_count":170,"forks_count":40,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-03-18T06:09:47.616Z","etag":null,"topics":["architecture","aws","aws-lambda","azure","fargate","gcp","kubernetes","microservices","pulumi","serverless","terraform"],"latest_commit_sha":null,"homepage":"https://klo.dev","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/klothoplatform.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","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":"2022-09-19T17:14:13.000Z","updated_at":"2025-03-09T03:03:52.000Z","dependencies_parsed_at":"2023-01-02T10:42:17.766Z","dependency_job_id":"627389f8-3991-43c5-beb2-a05eb4442736","html_url":"https://github.com/klothoplatform/klotho","commit_stats":{"total_commits":1288,"total_committers":20,"mean_commits":64.4,"dds":0.6187888198757764,"last_synced_commit":"661934798c5af12a560eb0bd3d97008b503677aa"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klothoplatform%2Fklotho","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klothoplatform%2Fklotho/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klothoplatform%2Fklotho/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klothoplatform%2Fklotho/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/klothoplatform","download_url":"https://codeload.github.com/klothoplatform/klotho/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245414549,"owners_count":20611367,"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":["architecture","aws","aws-lambda","azure","fargate","gcp","kubernetes","microservices","pulumi","serverless","terraform"],"created_at":"2024-07-31T02:01:13.475Z","updated_at":"2025-03-25T07:09:35.932Z","avatar_url":"https://github.com/klothoplatform.png","language":"Go","funding_links":[],"categories":["Go","Continuous Delivery \u0026 GitOps"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://klo.dev\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/69910109/209406610-c35afa17-7aff-4d44-921c-078d174d30f0.png\" width=\"300\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\n  Terraform/CDK alternative designed for developers\n  \u003cbr\u003e\n\u003c/h1\u003e\n\n[![test badge](https://github.com/klothoplatform/klotho/actions/workflows/test.yaml/badge.svg)](https://github.com/klothoplatform/klotho/actions/workflows/test.yaml)\n[![formatting badge](https://github.com/klothoplatform/klotho/actions/workflows/prettier.yaml/badge.svg)](https://github.com/klothoplatform/klotho/actions/workflows/prettier.yaml)\n[![linter badge](https://github.com/klothoplatform/klotho/actions/workflows/lint.yaml/badge.svg)](https://github.com/klothoplatform/klotho/actions/workflows/lint.yaml)\n[![govulncheck](https://github.com/CloudCompilers/klotho/actions/workflows/govulncheck.yaml/badge.svg)](https://github.com/CloudCompilers/klotho/actions/workflows/govulncheck.yaml)\n\n[![Go Coverage](https://github.com/klothoplatform/klotho/wiki/coverage.svg)](https://raw.githack.com/wiki/klothoplatform/klotho/coverage.html)\n[![Latest Release](https://img.shields.io/github/v/release/klothoplatform/klotho)](https://github.com/klothoplatform/klotho/releases)\n[![License](https://img.shields.io/github/license/klothoplatform/klotho)](https://github.com/klothoplatform/klotho/blob/main/LICENSE)\n\n## What is Klotho?\nKlotho is a developer-centric cloud infra-as-code deployment tool with high level constructs. It lets you think in terms of containers, functions, APIs and databases and combining them freely.\n\n### Example Klotho infra.py\n\u003cdetails\u003e\n\u003csummary\u003einfra.py\u003c/summary\u003e\n\n```python\nimport os\nfrom pathlib import Path\n\nimport klotho\nimport klotho.aws as aws\n\n# Create the Application instance\napp = klotho.Application(\n    \"my-sample-app\",\n    project=\"my-project\",\n    environment=\"default\",\n    default_region=\"us-west-2\",  \n)\n\ndir = Path(__file__).parent.absolute()\n\n# Create a dynamodb instance with 2 indexed attributes\ndynamodb = aws.DynamoDB(\n    \"my-dynamodb\",\n    attributes=[\n        {\"Name\": \"id\", \"Type\": \"S\"},    \n        {\"Name\": \"data\", \"Type\": \"S\"},  \n    ],\n    hash_key=\"id\",\n    range_key=\"data\"\n)\n\n# Create a lambda function that reads in code and deploys it as a zip file\nmy_function = aws.Function(\n    \"my-function\",\n    handler=\"handler.handler\",\n    runtime=\"python3.12\",\n    code=str(dir),\n)\n\n# Bind the dynamodb instance to the lambda function\nmy_function.bind(dynamodb)\n\n# Create an ECS container\nmy_container = aws.Container(\n    \"my-container\",\n    dockerfile=str(dir / \"container\" / \"Dockerfile\"),\n    context=str(dir),\n)\n\n# Create a Postgres instance with plain text password\nmy_postgres = aws.Postgres(\n    \"my-postgres\",\n    username=\"admin\",\n    password=\"password123!\",\n    database=\"mydb\",\n)\n\n# Bind the postgres instance to the container\nmy_container.bind(my_postgres)\n\n# Create an API Gateway instance\napi = aws.Api(\"my-api\")\n\n# Bind the lambda function to the API Gateway on the /function route\napi.route(\n  routes: [\n    RouteArgs(path=\"/function\", method=\"ANY\")\n  ], my_function\n)\n\n# Bind the container to the API Gateway on the /container route\napi.route(\n  routes: [\n    RouteArgs(path=\"/container\", method=\"ANY\")\n  ], my_container\n)\n```\n\u003c/details\u003e\n\n## Getting Started\nTo get started with Klotho, visit our [documentation](https://klo.dev/docs-k2/) and follow the guides to quickly set up your environment.\n\n## Example Projects\nCheck out some [example projects](https://github.com/klothoplatform/k2-sample-apps) built using Klotho.\n\n## Community and Support\nJoin our community of developers and get involved in shaping the future of Klotho:\n\n[![Discord](https://img.shields.io/badge/Klotho-%237289DA.svg?style=for-the-badge\u0026logo=discord\u0026logoColor=white)](https://klo.dev/discordurl)\n\n## Contributing\nWe welcome contributions from the community. Check out our [contributing guide](https://github.com/klothoplatform/klotho/blob/main/CONTRIBUTING.md) to learn how to get involved in Klotho’s development.\n\n## License\nKlotho is licensed under the Apache 2.0 License. See the [LICENSE](https://github.com/klothoplatform/klotho/blob/main/LICENSE) file for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklothoplatform%2Fklotho","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fklothoplatform%2Fklotho","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklothoplatform%2Fklotho/lists"}