GitHub 2.4 万 Star!D2 正在重新定义程序员画图方式

还在用 Visio、draw.io 一点点拖组件?还在改架构图时"线全乱了"?现在,越来越多开发者开始用一种"写代码生成架构图"的方式来画图。它叫 D2,一个由 Go 编写、开源、现代化的 Diagram DSL。

你只需要写:

d2 复制代码
api -> service -> mysql

它就能自动生成一张漂亮的架构图。

更离谱的是:

  • 支持自动布局
  • 支持主题美化
  • 支持 SVG / PNG / PDF 导出
  • 支持 VSCode
  • 支持实时预览
  • 支持代码版本管理
  • 支持大型系统架构图
  • 甚至还能"手绘风"

D2 是什么?

Terrastruct 开源的一个现代化 Diagram Language(图形脚本语言)。

项目地址:

terrastruct/d2 GitHub 仓库

官方介绍:

"A modern diagram scripting language that turns text to diagrams."

简单说你写文本它自动生成图。

D2 如何安装?

安装极其简单。

Go 安装

如果你本身就是 Go 开发者:

bash 复制代码
go install oss.terrastruct.com/d2@latest

Linux / MacOS

直接:

bash 复制代码
curl -fsSL https://d2lang.com/install.sh | sh -s --

安装完成后 d2 --version 能够获取到版本信息说明安装成功了

Windows 安装

推荐:

  • Scoop
  • Chocolatey
  • 或下载 Release

也可以直接用 Go 安装。

第一个 D2 示例

创建 hello.d2 文件,内容:

d2 复制代码
user -> api
api -> redis
api -> mysql

执行 d2 hello.d2 会自动生成 hello.svg 文件

开启实时预览

这是最爽的模式。

d2 复制代码
d2 --watch hello.d2

然后浏览器自动打开,你改代码图自动刷新,开发体验非常丝滑。

微服务架构

d2 复制代码
direction: right

vars: {
  d2-config: {
    theme-id: 300
  }
}

Client: {
  shape: person
}


Client -> gateway

gateway -> user-service
gateway -> order-service
gateway -> pay-service

user-service -> mysql
order-service -> mysql
pay-service -> redis

D2 的高级玩法

真正厉害的地方来了。

1. 自定义 Shape

d2 复制代码
db: {
  shape: cylinder
}

数据库会自动变成圆柱体。

2. 人物节点

d2 复制代码
user: {
  shape: person
}

3. 云服务图标

支持:

  • AWS
  • Kubernetes
  • 网络结构
  • 云原生组件

4. 多层嵌套

d2 复制代码
cloud: {
  vpc: {
    subnet: {
      api
    }
  }
}

可以直接表达 层级架构

5. 手绘风

d2 复制代码
vars: {
  d2-config: {
    sketch: true
  }
}

6. 主题系统

官方内置很多主题,比如:

makefile 复制代码
theme-id: 300

可以快速切换:

  • 科技风
  • 深色风
  • 极简风
  • 手绘风

官方示例图:

结语

过去程序员画图像美工,现在程序员画图终于像写代码了。而 D2正在把"架构图"真正带入工程化时代。

如果你:

  • 讨厌拖图
  • 讨厌改布局
  • 想把图纳入 Git
  • 想让 AI 自动生成架构图
  • 想做真正可维护的系统文档

那 D2 非常值得你认真试试。

相关推荐
zhangxingchao2 小时前
多 Agent 架构到底怎么选?从 Claude Agent Teams、Cognition/Devin 到工程落地原则
前端·人工智能·后端
IT_陈寒3 小时前
SpringBoot那个自动配置的坑,害我排查到凌晨三点
前端·人工智能·后端
ServBay3 小时前
OpenCode 和它的7款必备插件
后端·github·ai编程
ping某3 小时前
逐字节拆解 tcpdump
后端
阿凡9807303 小时前
花 100 dollar,用 Claude 打通 EasyEDA&Fusion 双向同步
后端·程序员
irving同学462383 小时前
从零搭建生产级 RAG:Embedding、Chunking、Hybrid Search 与 Reranker
前端·后端
她的男孩3 小时前
从零搭一个企业后台,为什么我把能力拆成 Starter 和 Plugin
java·后端·架构
胡志辉3 小时前
本地 AI 编码助手从 0 配起来:先选模型,再接 Ollama、VS Code、Claude Code 和 Codex
前端·后端
RainCity3 小时前
Java Swing 自定义组件库分享(七)
java·笔记·后端