Using graphs to describe infrastructure and architecture is a consensus, but which method is the best choice has been debated so far. Python Diagrams As Infra provides a more simple way, but d2 has a powerful DSL and d2-studio for editing/viewing.
It seems that d2 and python should be the best choices, with complete ecosystem, powerful DSL and simple operation/APIs.
- dotsk
https://medium.com/@zeruhur/making-sketchy-diagrams-on-your-local-machine-903d13e20a13
news & thoughts: https://www.ilograph.com/blog/posts/its-time-to-drop-drag-and-drop-diagram-tools/
After I tried to use matrix-attack-data to generate various data formats, I realized that I needed a visual document that could clearly describe the relationship between mixed data and help me audit the data type and make modifications (such as vast-query, data-schema, queryLang). Secondly, I also hope to be able to import metadata like mitre-attack/pyattack into such documents to help me think about how to build a valid data model. (workflow: use the d2 to draw an attack-flow(), then use that dbdocs to build the metadata for querying and reviewing)
Can you list the advantages and disadvantages of drawing tools such as d2, structurizr, Python diagrams, and ilograph?
- D2:
Advantages:
- Provides extensive customizations for visual elements
- Supports various types of diagrams, including ER diagrams, flowcharts, and network diagrams
- Offers collaboration features such as sharing and commenting on diagrams
Disadvantages:
- Steep learning curve due to its complex interface
- Doesn’t offer many templates or pre-built shapes, which can be time-consuming for beginners
- Structurizr:
Advantages:
- Offers a clean and simple interface with easy-to-navigate features
- Provides a clear and concise way to visualize software architecture diagrams
- Maintains diagrams’ consistency due to its automated syncing system
Disadvantages:
- Limited customization options
- Requires structured data input, which can be difficult for beginners.
- Python Diagrams:
Advantages:
- Python diagrams have a simple syntax that allows users to get started quickly
- Highly customizable and flexible
- Free and open source
Disadvantages:
- Lacks many templates or pre-built shapes, which can be time-consuming
- May not be suitable for complex diagrams due to the limitations of python libraries.
- Ilograph:
Advantages:
- Provides an organized view of content in an interactive canvas environment
- Intuitive drag-and-drop interface
- Offers various templates and pre-built shapes for quick diagrams creation
Disadvantages:
- Doesn’t offer many customization options for shapes (e.g., color, size)
- The free version offers limited features
Overall, the choice of drawing tool depends on your specific requirements and preferences. Each tool has its own advantages and disadvantages, so it is important to evaluate which tool aligns best with your needs.