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 非常值得你认真试试。

相关推荐
ZWZhangYu11 小时前
从 Dify 实践理解大模型上下文缓存
java·后端·spring
考虑考虑12 小时前
瀚高数据库
数据库·后端·postgresql
锋行天下13 小时前
DeepSeek写Langgraph就是个大傻逼,一本正经胡说八道
前端·人工智能·后端
小小张说故事15 小时前
Python 的 str 为什么设计成不可变?拆开字符串驻留、字符串池,以及 += 拼接到底慢在哪
后端·python
AI架构师之家15 小时前
我把 Hermes 这匹"马"养了两周,它干了一件让我有点发毛的事
后端
dpharness15 小时前
块协议用了两周,我把九个坑按顺序记下来了
后端
加宝的起点雷达15 小时前
跑了两周的信号日报,我把降级链改了四次
人工智能·后端
IT枫斗者枫哥15 小时前
CompletableFuture失败后返回空列表:异常没了,业务含义也变了
java·后端
Gopher_HBo15 小时前
opentelemetrySDK源码解析
后端
UrbanJazzerati16 小时前
AutoHotkey v2 零基础快速入门 Part 10:给路线回放添加高精度计时,理解累计延迟与路线一致性
后端