# awslabs/diagram-as-code

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/awslabs-diagram-as-code).**

1,523 stars · 98 forks · Go · Apache-2.0

## Links

- GitHub: https://github.com/awslabs/diagram-as-code
- awesome-repositories: https://awesome-repositories.com/repository/awslabs-diagram-as-code.md

## Topics

`aws` `diagram-as-code`

## Description

This project is a library for generating visual architecture diagrams and network topologies directly from infrastructure-as-code templates and configuration specifications. It functions as a programmatic interface that transforms infrastructure definitions into visual documentation, allowing users to maintain system diagrams as version-controlled text files.

The tool distinguishes itself through an automated layout engine that uses graph algorithms to calculate spatial positioning, connection routing, and link paths without manual coordinate configuration. It supports complex visual hierarchies by enabling logical grouping of resources, boundary positioning, and the application of custom visual styles to individual components or segments.

The system provides a comprehensive set of capabilities for managing diagram flow and structure, including automated pathfinding, directional indicators, and overlap prevention for connections. It also features a programmatic drawing interface and template processing logic, which allow for the integration of diagram generation into automated workflows or external software agents.

## Tags

### Development Tools & Productivity

- [UML Diagram Generators](https://awesome-repositories.com/f/development-tools-productivity/diagramming-tools/visual-diagram-editors/ai-driven-diagramming/data-driven-diagram-generators/uml-diagram-generators.md) — Converts infrastructure specifications into visual diagrams for documentation purposes. ([source](https://github.com/awslabs/diagram-as-code#readme))
- [Infrastructure as Code Generators](https://awesome-repositories.com/f/development-tools-productivity/documentation-discovery-metadata/knowledge-documentation-management/documentation-knowledge-tools/documentation-generators/infrastructure-as-code-generators.md) — Generates architecture diagrams automatically from infrastructure-as-code configuration files.
- [Dynamic Templates](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/project-scaffolding-configuration/templating-engines/dynamic-templates.md) — Uses dynamic templating to process configuration files into scalable and repeatable architecture diagrams.
- [Version-Controlled Documentation](https://awesome-repositories.com/f/development-tools-productivity/version-controlled-documentation.md) — Supports managing architecture diagrams as version-controlled text files for auditing and collaboration.

### Software Engineering & Architecture

- [Cloud Architecture Diagramming Tools](https://awesome-repositories.com/f/software-engineering-architecture/technical-architecture-diagramming/cloud-architecture-diagram-labs/cloud-architecture-diagramming-tools.md) — Provides a library for automatically generating visual architecture diagrams from infrastructure-as-code templates.
- [Automated Diagram Routing](https://awesome-repositories.com/f/software-engineering-architecture/automated-diagram-routing.md) — The tool determines optimal connection points between resources based on their relative positions to eliminate the need for manual coordinate configuration during diagram creation. ([source](https://github.com/awslabs/diagram-as-code/blob/main/doc/advanced/auto-positioning.md))
- [Automatic Layout Engines](https://awesome-repositories.com/f/software-engineering-architecture/automatic-configuration/automatic-layout-engines.md) — Calculates optimal positioning and sizing for resources to ensure diagrams remain readable. ([source](https://github.com/awslabs/diagram-as-code#readme))
- [Declarative Configuration Systems](https://awesome-repositories.com/f/software-engineering-architecture/declarative-configuration-systems.md) — Transforms infrastructure definitions into internal object models using a declarative approach.
- [Graph Layout Engines](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/diagramming-standards/graph-layout-engines.md) — Uses force-directed algorithms to calculate optimal node positioning and connection routing for diagrams.
- [Diagram Layout Organizers](https://awesome-repositories.com/f/software-engineering-architecture/diagram-layout-organizers.md) — Organizes infrastructure components into vertical and horizontal stacks to represent network boundaries and traffic flow. ([source](https://github.com/awslabs/diagram-as-code/blob/main/doc/best-practices.md))
- [Cloud Infrastructure Diagrams](https://awesome-repositories.com/f/software-engineering-architecture/technical-architecture-diagramming/cloud-infrastructure-diagrams.md) — Converts infrastructure definitions into professional visual representations of cloud environments.
- [Visual Architecture Groupings](https://awesome-repositories.com/f/software-engineering-architecture/visual-architecture-groupings.md) — The tool draws visual boundaries across multiple existing resources to represent cross-cutting concerns like scaling groups or network segments without altering the underlying hierarchy. ([source](https://github.com/awslabs/diagram-as-code/blob/main/doc/resource-types.md))

### Data & Databases

- [Version-Controlled Configuration Stores](https://awesome-repositories.com/f/data-databases/local-persistence/configuration-persistence/version-controlled-configuration-stores.md) — Enables version control of architecture diagrams by storing definitions as plain text files. ([source](https://github.com/awslabs/diagram-as-code/blob/main/doc/introduction.md))

### DevOps & Infrastructure

- [Network Topology Diagrams](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-diagram-generation/network-topology-diagrams.md) — Programmatically renders network topologies and data flow diagrams from infrastructure definitions. ([source](https://github.com/awslabs/diagram-as-code/blob/main/doc/best-practices.md))
- [Cloud Infrastructure Design](https://awesome-repositories.com/f/devops-infrastructure/cloud-infrastructure-design.md) — Defines and organizes cloud resources into logical groups and boundaries for architectural visualization.
- [Cloud Infrastructure Visualization](https://awesome-repositories.com/f/devops-infrastructure/cloud-infrastructure-visualization.md) — Provides a programmatic interface for rendering network diagrams and resource relationships.
- [Infrastructure Visualization Tools](https://awesome-repositories.com/f/devops-infrastructure/infrastructure-visualization-tools.md) — Parses infrastructure-as-code templates to automatically generate visual architecture diagrams. ([source](https://github.com/awslabs/diagram-as-code#readme))

### Content Management & Publishing

- [Documentation Generators](https://awesome-repositories.com/f/content-management-publishing/content-management-systems/content-architecture-modeling/documentation-tooling/generation-publishing/documentation-generators.md) — Converts configuration files into visual system topologies for architecture documentation.

### Graphics & Multimedia

- [Automated Drawing Sequences](https://awesome-repositories.com/f/graphics-multimedia/graphics-and-media/shape-drawing/drawing-layers/automated-drawing-sequences.md) — Exposes a programmatic interface to automate the creation and styling of diagram elements.
- [Link-to-Link Connections](https://awesome-repositories.com/f/graphics-multimedia/link-to-link-connections.md) — Supports drawing lines between components with configurable paths and bends. ([source](https://github.com/awslabs/diagram-as-code/blob/main/doc/links.md))

### Networking & Communication

- [Spatial Constraint Solvers](https://awesome-repositories.com/f/networking-communication/traffic-routing/placement-constraints/spatial-constraint-solvers.md) — Calculates spatial positioning and collision rules for infrastructure components to ensure readable diagram layouts.

### User Interface & Experience

- [Component Grouping](https://awesome-repositories.com/f/user-interface-experience/item-lists/component-grouping.md) — Organizes infrastructure resources into logical boundaries and containers to define visual hierarchies. ([source](https://github.com/awslabs/diagram-as-code/blob/main/doc/resource-types.md))
