diagrams README

The project's README from github.com/mingrammer/diagrams. As one markdown file: README.md.

diagrams logo

Diagrams

license pypi version python version Run tests todos contributors

Buy Me A Coffee

Diagram as Code.

Diagrams lets you draw the cloud system architecture in Python code. It was born for prototyping a new system architecture design without any design tools. You can also describe or visualize the existing system architecture as well. Diagrams currently supports main major providers including: AWS, Azure, GCP, Kubernetes, Alibaba Cloud, Oracle Cloud etc... It also supports On-Premises nodes, SaaS and major Programming frameworks and languages.

Diagram as Code also allows you to track the architecture diagram changes in any version control system.

NOTE: It does not control any actual cloud resources nor does it generate cloud formation or terraform code. It is just for drawing the cloud system architecture diagrams.

Providers

aws provider azure provider gcp provider ibm provider kubernetes provider alibaba cloud provider oracle cloud provider openstack provider firebase provider digital ocean provider elastic provider outscale provider on premises provider generic provider programming provider saas provider c4 provider

Getting Started

Want to try it first? The online playground runs diagrams right in your browser — no installation required.

It requires Python 3.9 or higher, check your Python version first.

It uses Graphviz to render the diagram, so you need to install Graphviz to use diagrams. After installing graphviz (or already have it), install the diagrams.

macOS users can download the Graphviz via brew install graphviz if you're using Homebrew.

# using pip (pip3)
$ pip install diagrams

# using pipenv
$ pipenv install diagrams

# using poetry
$ poetry add diagrams

You can start with quick start. Check out guides for more details, and you can find all available nodes list in here.

Playground

diagrams.mingrammer.com/playground

A free online editor for diagrams: write Diagram as Code in Python and see the rendered architecture diagram instantly, without installing Python or Graphviz. It runs the real diagrams package in your browser via Pyodide, and supports node search, autocompletion, PNG/SVG/JPEG export, and shareable links. See the playground guide for details.

Examples

Event Processing Stateful Architecture Advanced Web Service
event processing stateful architecture advanced web service with on-premises

You can find all the examples on the examples page.

Contributing

To contribute to diagram, check out contribution guidelines.

Let me know if you are using diagrams! I'll add you in showcase page. (I'm working on it!) :)

Who uses it?

Apache Airflow is the most popular data workflow Orchestrator. Airflow uses Diagrams to generate architecture diagrams in their documentation.

Cloudiscovery helps you to analyze resources in your cloud (AWS/GCP/Azure/Alibaba/IBM) account. It allows you to create a diagram of analyzed cloud resource map based on this Diagrams library, so you can draw your existing cloud infrastructure with Cloudiscovery.

Airflow Diagrams is an Airflow plugin that aims to easily visualise your Airflow DAGs on service level from providers like AWS, GCP, Azure, etc. via diagrams.

KubeDiagrams is a tool to generate Kubernetes architecture diagrams from Kubernetes manifest files, kustomization files, Helm charts, and actual cluster state. KubeDiagrams supports all Kubernetes built-in resources, any custom resources, and label-based resource clustering.

AWS CloudFormation Diagrams is a simple CLI script to generate AWS architecture diagrams from AWS CloudFormation templates.

Other languages

License

MIT

diagrams (mingrammer/diagrams)

Searching Database…

42.7K ·GitHub
这是什么?Diagrams 是一个 Python 库,可以用代码的方式绘制云系统架构图:你用 Python 描述自己的 AWS、Azure、GCP 或 Kubernetes 架构,它就能生成一张渲染好的图。它的设计初衷是不借助设计工具,就能快速搭建架构设计的原型。
这是我写代码用的库,还是一个画图软件?是一个 Python 库:你在代码里描述节点和连接关系,由 Graphviz 渲染成图。它还提供一个浏览器在线 playground,不用在本地做任何配置也能试用。
怎么把它跑起来?先安装 Python 3.9+ 和 Graphviz(macOS 上用 Homebrew:brew install graphviz),然后 pip install diagrams。如果完全不想在本地配置环境,可以直接从在线 playground 开始。
它能部署或管理我实际的云资源吗?不能——它只负责画图。它不会操作真实的云资源,也不会生成 CloudFormation 或 Terraform 代码,输出只是一张架构图。
它支持哪些云服务商?主流的都覆盖:AWS、Azure、GCP、Kubernetes、阿里云、Oracle Cloud,此外还有本地部署节点、SaaS,以及主流的编程框架和语言。完整的节点列表在 README 中有链接。
为什么用代码来定义架构,而不是在编辑器里画图?因为架构图可以像源代码一样放在你的代码仓库里:Diagram as Code 让你在任何版本控制系统中跟踪架构图的变更,设计就能像其他代码一样被评审和对比差异。
不安装 Python 和 Graphviz 也能试用吗?可以——diagrams.mingrammer.com/playground 上的 playground 通过 Pyodide 在你的浏览器里运行真正的 diagrams 包,支持节点搜索、自动补全、PNG/SVG/JPEG 导出,还能生成可分享的链接。
实际有哪些人在用它?Apache Airflow 用它生成自己文档里的架构图,Cloudiscovery、Airflow Diagrams、KubeDiagrams 以及一个 AWS CloudFormation 架构图命令行工具也都是基于它构建的。
Creator
mingrammer
Size
72.4 MB
Stars
42.7K
Age
6y
Commits · 90 Days