用一套 API 玩转所有技术绘图:Kroki,让技术绘图变得简单高效

简介: Kroki 是一个开源图形渲染网关,通过统一的 HTTP API 将 PlantUML、Mermaid 等多种文本描述图转换为 SVG/PNG/PDF。支持 30+ 工具,简化文档集成与自动化流程,助力技术绘图高效统一。

在日常开发和文档写作中,我们经常会画各种图:时序图、架构图、流程图、数据模型图……,工具一堆:PlantUML、Mermaid、GraphViz、Excalidraw、diagrams.net、BPMN……,每种工具有自己的语法、自己的编辑器、自己的导出方式,集成到文档或自动化流程里往往很麻烦。

Kroki 想做的一件事,就是:

用一套统一的 HTTP API,把各种“文本描述的图”统一渲染成图片(SVG / PNG / PDF)。

你可以把它理解成一个“图形渲染网关服务”:只要给它一段图形代码,它就帮你找对引擎、渲染好图,再把结果返回给你。

💡 什么是Kroki?

Kroki 是一个开源项目,提供一个统一的 HTTP API,封装了多种绘图引擎,目前支持(包括但不限于):

  • BlockDiag 家族:BlockDiag、SeqDiag、ActDiag、NwDiag、PacketDiag、RackDiag
  • BPMN
  • Bytefield
  • C4(基于 PlantUML)
  • D2
  • DBML
  • diagrams.net(实验性)
  • Ditaa
  • Erd
  • Excalidraw
  • GraphViz
  • Mermaid
  • Nomnoml
  • Pikchr
  • PlantUML
  • SvgBob
  • Symbolator
  • UMLet
  • Vega / Vega-Lite
  • WaveDrom
  • WireViz
  • ……后续还会不断扩展

官网与文档:

该项目目前在github上已有3.9k ⭐️ star

⏫ 快速上手

🐳 Docker部署

最简单的体验方式是使用Docker:

docker run -d -p 3800:8000 yuzutech/kroki

📚 Docker Compose完整部署

对于需要完整功能的环境,可以使用docker-compose:

services:
  core:
    image: yuzutech/kroki
    environment:
      - KROKI_MERMAID_HOST=mermaid
      - KROKI_BPMN_HOST=bpmn
      - KROKI_EXCALIDRAW_HOST=excalidraw
    ports:
      - "3800:8000"
  mermaid:
    image: yuzutech/kroki-mermaid
    expose:
      - "8002"
  bpmn:
    image: yuzutech/kroki-bpmn
    expose:
      - "8003"
  excalidraw:
    image: yuzutech/kroki-excalidraw
    expose:
      - "8004"
  # experimental!
  diagramsnet:
    image: yuzutech/kroki-diagramsnet
    expose:
      - "8005"

启动服务

docker-compose up -d

等待启动即可

🧱 基本用法:给文本,拿图片

Kroki 暴露的是一个简单的 HTTP 接口,你可以用 GET 或 POST 来调用。

⬆️ 1. GET:URL 中携带编码后的图

Kroki 使用「deflate + base64」算法对图形描述进行压缩编码,然后放入 URL:

GET /plantuml/svg/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000

这条请求的含义是:

  • 使用 plantuml 引擎
  • 输出格式为 svg
  • 图形内容是解码后得到的那段文本(在这里被压缩 + base64 处理过)

优点:

  • 非常适合在 Markdown 文档、静态网页中直接嵌入图片链接。

示例

![示例图](http://192.168.31.195:3800/seqdiag/svg/eNorTi1MyUxMV6jmUlBIKsovL04tUlDQtVMoT00CMsuAvOicxKTUHAVbBSV31xAF_WKIBv3isnT9pMTiVDMTpVhroGaEBpD2gqL85NTi4nxk7c75eUDpEoWS1Aogka-QmZuYnoqu2UZXF6HZGslRIAm4MmuuWgA13z1R)

缺点:

  • URL 会比较长,需要一个小工具/插件来帮你编码。

很多编辑器和工具(比如 Asciidoctor 插件)已经原生支持 Kroki,可以自动完成这一步。也可以在官网上编辑好之后直接复制。

⬇️ 2. POST JSON:最直观的方式

你也可以使用 POST,直接发 JSON,不需要自己做编码:

POST /
Content-Type: application/json
Accept: image/svg+xml
{
   
  "diagram_source": "Bob -> Alice : hello",
  "diagram_type": "plantuml",
  "output_format": "svg"
}

字段说明:

  • diagram_source:图形描述源文本
  • diagram_type:使用的引擎类型,比如 plantumlmermaidgraphviz
  • output_format:输出格式,比如 svgpngpdf 等(具体支持情况与引擎有关)

非常适合:

  • 后端服务调用 Kroki 渲染图
  • CI 流水线脚本里直接用 curl 或 HTTP 客户端调用

⤵️ 3. POST 纯文本:用 Header 指定类型与格式

如果不想发 JSON,可以直接把图形描述当作纯文本发过去。

方式 A:通过 Accept 指定输出格式

POST /plantuml
Accept: image/svg+xml
Content-Type: text/plain

Bob -> Alice : hello

含义:

  • URL 中 /plantuml 表示使用 PlantUML 引擎
  • Content-Type: text/plain 表示请求体是纯文本
  • Accept: image/svg+xml 表示希望返回 SVG

方式 B:在 URL 中指定输出格式

POST /plantuml/svg
Content-Type: text/plain

Bob -> Alice : hello

含义类似,只是把输出格式 svg 写在了路径里,这样就不需要设置 Accept 头了。

🔝 4. POST JSON + URL 格式:混合用法

也可以继续用 JSON,但把输出格式放 URL:

POST /plantuml/svg
Content-Type: application/json
Accept: application/json
{
   
  "diagram_source": "Bob -> Alice : hello"
}

你可以根据自己工程里的调用方式和习惯自由选择上面这些风格,本质都是同一套逻辑。

✳️ 总结

Kroki 把本来分散、各自为政的各种绘图库,统一包装成了一个简单、统一的 HTTP 图形渲染服务

  • 对使用者来说:
    • 不用关心底层是 PlantUML 还是 Mermaid,统一用 HTTP API 调。
    • 非常适合与 CI/CD、Docs-as-Code、Wiki、门户站点等集成。
  • 对开发者 / 运维来说:
    • 核心是一个 Java 网关,配合一组 companion 容器。
    • 使用 Docker / docker-compose 就能比较轻松地部署。

如果你的团队已经在大量使用“文本描述的图”,又希望统一渲染方式、自动化集成,Kroki 是非常值得一试的基础设施组件。

技术绘图变得简单高效

目录
相关文章
|
2月前
|
安全 数据安全/隐私保护
2026阿里云账号注册流程(以企业用户为例)注册材料、实名认证、企业上云补贴及问题解答FAQ
企业用户注册阿里云账号仅需手机号,注册后须完成实名认证方可使用。本文详解2026年最新企业账号注册、支付宝扫码快速认证流程及常见问题,助力企业高效上云,享最高百万出海补贴。
249 9
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
AI时代的“义务教育”:深度拆解LLM预训练核心原理与PyTorch源码实现
本文深入解析大模型预训练核心,以Qwen2.5为例,从Tokenizer、RoPE位置编码到GQA注意力机制,拆解LLM如何通过海量数据“炼”成。涵盖架构演进、关键技术与代码实现,带你手把手理解大模型“义务教育”阶段的底层逻辑。
202 7
|
JavaScript
antd树形控件遇到的一些坑
antd树形控件遇到的一些坑
|
9天前
|
人工智能 API 数据安全/隐私保护
喂饭级教程:阿里云/本地部署OpenClaw(Clawdbot),接入小红书自动发图文一键搞定
2026年,内容创作正式迈入“自动化生产”新纪元。对于小红书博主、自媒体人及内容团队而言,最耗时的痛点莫过于“选题靠刷、文案靠改、图片靠做、发布靠蹲”,一篇笔记从构思到落地往往耗费数小时。而OpenClaw(原Clawdbot)的横空出世,彻底重构了小红书创作流程——凭借“插件化拓展、全流程闭环、多平台适配”的核心优势,它能实现从热门选题抓取、图文智能生成、排版优化到定时自动发布的全链路自动化,无需手动干预,仅通过自然语言指令,就能快速产出符合平台调性的标准化笔记,真正解放创作生产力。
1594 0
|
2月前
|
Web App开发 安全 网络安全
伪装成“对账单”的远控木马:Coinbase钓鱼新套路暴露Windows端点安全盲区
2025年,黑客利用伪造Coinbase对账单邮件,诱导用户下载恶意程序,通过RAT远控木马窃取浏览器Cookie与2FA信息,实现账户接管。攻击链结合社会工程、端点入侵与权限绕过,暴露传统防御短板,警示全球用户提升安全意识,推动FIDO2认证与EDR部署,构建技术与习惯并重的数字安全防线。
110 4
|
2月前
|
机器学习/深度学习 人工智能 并行计算
AI语音克隆掀起“声”命危机:全球Vishing攻击激增,传统身份核验体系告急
2025年,AI语音诈骗席卷全球。伦敦一银行员工被克隆的CFO声音欺骗,转出230万欧元。生成式语音技术让“声纹复刻”轻而易举,传统KBA与语音OTP防线崩溃。从CEO诈骗到亲情骗局,攻击者利用开源模型实施精准社工攻击。防御需结合被动生物识别、多因素认证与行为分析。专家警示:声音已不可信,唯有提高警觉,重建信任机制,方能应对这场真实与伪造的战争。
181 1
|
2月前
|
机器学习/深度学习 人工智能 分布式计算
大数据与机器学习的定义
大数据指海量、高速、多样的信息集合,传统工具难以处理;机器学习是AI分支,能从数据中自动学习规律并决策。二者相辅相成:大数据为机器学习提供训练基础,机器学习则挖掘数据价值,推动金融、医疗、零售、工业等领域的智能化升级。核心技术包括Hadoop、Spark、TensorFlow等,未来趋势聚焦边缘计算、可解释AI与实时分析。
|
2月前
|
存储 人工智能 安全
阿里云企业级计算型c9a/c9i、通用型g9a/g9i、内存型r9a/r9i九代实例性能对比与选择参考
阿里云第九代云服务器涵盖英特尔至强6平台的c9i/g9i/r9i与AMD EPYC Turin平台的c9a/g9a/r9a两大阵营。英特尔阵营凭借AMX矩阵加速、TDX安全技术,适配AI推理、高并发Web服务等场景;AMD阵营通过多CCD模块化设计,在区块链、多线程任务中表现优异。这些企业级九代实例性能对比与选择参考如下。
1762 3
|
4月前
|
人工智能 自然语言处理 安全
程序员都在偷偷用的AI编程神器!2025高效自动写代码工具全解析
AI编程革命正悄然兴起。李响团队调研显示,AI助手大幅提升开发效率,GitHub Copilot、CodeWhisperer、Tabnine各具优势,而新兴的Lynx AI更以自然语言生成全栈应用,零门槛、多端适配,助力开发者从重复劳动中解放,专注创新。
程序员都在偷偷用的AI编程神器!2025高效自动写代码工具全解析
|
6月前
|
人工智能 安全 Ubuntu
保姆级教程 | 在Ubuntu上部署Claude CodeUI全过程
Claude Code Plan Mode 是 Anthropic 推出的智能编程助手功能,采用只读分析模式,保障代码安全的同时提供AI驱动的项目规划与风险评估。该模式平均每周为开发者节省27小时,显著提升开发效率与项目成功率,是AI编程领域的重要创新。
4630 10

热门文章

最新文章