{"id":30741545,"url":"https://github.com/awslabs/diagram-as-code","last_synced_at":"2026-03-03T22:31:17.579Z","repository":{"id":225273213,"uuid":"760955460","full_name":"awslabs/diagram-as-code","owner":"awslabs","description":"Diagram-as-code for AWS architecture.","archived":false,"fork":false,"pushed_at":"2026-02-14T01:59:06.000Z","size":11019,"stargazers_count":1415,"open_issues_count":42,"forks_count":96,"subscribers_count":14,"default_branch":"main","last_synced_at":"2026-02-14T08:42:21.147Z","etag":null,"topics":["aws","diagram-as-code"],"latest_commit_sha":null,"homepage":"","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/awslabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-02-21T00:57:40.000Z","updated_at":"2026-02-14T06:30:05.000Z","dependencies_parsed_at":"2024-03-01T06:30:25.824Z","dependency_job_id":"c1c377b5-ac00-48aa-a731-505e95c43d95","html_url":"https://github.com/awslabs/diagram-as-code","commit_stats":null,"previous_names":["awslabs/diagram-as-code"],"tags_count":22,"template":false,"template_full_name":"amazon-archives/__template_Apache-2.0","purl":"pkg:github/awslabs/diagram-as-code","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awslabs%2Fdiagram-as-code","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awslabs%2Fdiagram-as-code/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awslabs%2Fdiagram-as-code/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awslabs%2Fdiagram-as-code/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/awslabs","download_url":"https://codeload.github.com/awslabs/diagram-as-code/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awslabs%2Fdiagram-as-code/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30064286,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T18:21:05.932Z","status":"ssl_error","status_checked_at":"2026-03-03T18:20:59.341Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","diagram-as-code"],"created_at":"2025-09-04T01:01:24.858Z","updated_at":"2026-03-03T22:31:17.561Z","avatar_url":"https://github.com/awslabs.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Diagram-as-code\nThis command line interface (CLI) tool enables drawing infrastructure diagrams for Amazon Web Services through YAML code. It facilitates diagram-as-code without relying on image libraries.\n\nThe CLI tool promotes code reuse, testing, integration, and automating the diagramming process. It allows managing diagrams with Git by writing human-readable YAML.\n\nExample templates are [here](examples).\nCheck out the [Introduction Guide](doc/introduction.md) as well for additional information.\n\n\u003cimg src=\"doc/static/introduction2.png\" width=\"800\"\u003e\n\n![CLI Usage animation](doc/static/command_demo.gif)\n\n## Features\n- **Compliant with AWS architecture guidelines**  \nEasily generate diagrams that follow [AWS diagram guidelines](https://aws.amazon.com/architecture/icons).\n- **Flexible**  \nAutomatically adjust the position and size of groups.\n- **Lightweight \u0026 CI/CD-friendly**  \nStart quickly on a container; no dependency on headless browser or GUI.\n- **Integrate with your Infrastructure as Code**  \nGenerate diagrams to align with your IaC code without managing diagrams manually.\n- **As a drawing library**  \nUse as Golang Library and integrate with other IaC tools, AI, or drawing GUI tools.\n- **Extensible**  \nAdd definition files to create non-AWS diagrams as well.\n\n## Getting started\n\n### for Gopher (go 1.21 or higher)\n```\n$ go install github.com/awslabs/diagram-as-code/cmd/awsdac@latest\n```\n\n### for macOS user\n```\n$ brew install awsdac\n```\n\n## Usage\n\n```\nUsage:\n  awsdac \u003cinput filename\u003e [flags]\n\nFlags:\n  -c, --cfn-template               [beta] Create diagram from CloudFormation template\n  -d, --dac-file                   [beta] Generate YAML file in dac (diagram-as-code) format from CloudFormation template\n  -h, --help                       help for awsdac\n  -o, --output string              Output file name (default \"output.png\")\n      --override-def-file string   For testing purpose, override DefinitionFiles to another url/local file\n  -t, --template                   Processes the input file as a template according to text/template.\n  -v, --verbose                    Enable verbose logging\n      --version                    version for awsdac\n```\n\n### Example\n\n```\n$ awsdac examples/alb-ec2.yaml\n```\n\n```\n$ awsdac privatelink.yaml -o custom-output.png\n```\n\n## Documentation\n\n### Getting Started\n- **[Introduction Guide](doc/introduction.md)** - Quick start (10 minutes) and core concepts\n- **[Troubleshooting](doc/troubleshooting.md)** - Common issues and solutions\n\n### Core Features\n- **[Resource Types](doc/resource-types.md)** - Available AWS resources and diagram elements\n- **[Links](doc/links.md)** - Connecting resources with arrows and lines\n\n### Tools \u0026 Integration\n- **[MCP Server](doc/mcp-server.md)** - AI assistant integration\n- **[CloudFormation Conversion](doc/cloudformation.md)** [Beta] - Convert CloudFormation templates to diagrams\n\n### Advanced Features\n- **[Templates](doc/template.md)** - Using Go templates for dynamic diagrams\n- **[UnorderedChildren](doc/advanced/unordered-children.md)** - Automatic child reordering for optimal layouts\n- **[Auto-positioning](doc/advanced/auto-positioning.md)** - Smart link positioning\n- **[Link Grouping Offset](doc/advanced/link-grouping.md)** - Prevent link overlap\n- **[BorderChildren](doc/advanced/border-children.md)** - Place resources on borders\n\n### Guides\n- **[Best Practices](doc/best-practices.md)** - Design patterns and diagram standards\n\n### Contributing\n- **[Documentation Guidelines](doc/contributing-docs.md)** - How to contribute to documentation\n\n---\n\n## Development Guide\n\nFor contributing guidelines, please see [CONTRIBUTING.md](CONTRIBUTING.md).\n\n### Project Structure\n- `cmd/` - CLI tools (awsdac, awsdac-mcp-server)\n- `internal/` - Core implementation\n  - `cache/` - Caching logic\n  - `ctl/` - Core control logic\n  - `definition/` - Definition file handling\n  - `font/` - Font management\n  - `types/` - Core types and structures\n  - `vector/` - Vector operations\n- `test/` - Integration tests\n- `tools/` - Development tools\n- `examples/` - Example YAML files\n- `doc/` - Documentation\n\n## Security\n\nSee [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information.\n\n## License\n\nThis project is licensed under the Apache-2.0 License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawslabs%2Fdiagram-as-code","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fawslabs%2Fdiagram-as-code","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawslabs%2Fdiagram-as-code/lists"}