Skip to content

Kroki

Kroki 統一圖表生成平台

軟體分類 應用軟體 / 開發工具
軟體標籤
142016161571290647Adobe Audition
開發廠商 Yuzutech
Stars
4k
Forks
286
License
MIT
Version
vv0.25.x (2026 Edition)
Update
2026-03-10
OS
kubernetes

終結環境配置的地獄:讓您的技術文件,在代碼與圖像間自由切換

  • 單一 API 存取全生態: 支援超過 30 種圖表庫,包含 PlantUML, Mermaid, C4, GraphViz, Excalidraw, D2, TikZ 與 WireViz 等,無需手動安裝這些庫的執行環境。
  • 無狀態與高效能: 核心由高效的 Java (Vert.x) 編寫,採用異步架構處理請求。圖表狀態直接透過 URL 編碼傳遞,伺服器無需儲存任何數據。
  • 跨語言 SDK 與整合: 原生支援 Node.js, Python, Go, Java 等多種語言,並可輕鬆整合至 VS Code、Obsidian、GitHub 與各類靜態網站生成器。
  • 靈活的部署模式: 既可直接使用 kroki.io 免費服務,也能透過 Docker 快速自託管,確保數據在您的私有網路內流動。

核心系統架構

  • Gateway Server (Java/Vert.x): 系統的單一入口點。負責解析 HTTP 請求、驗證參數,並將任務分發到後端對應的處理器。
  • Companion Servers (Node.js / Go / etc.): 針對不同圖表庫的特性,Kroki 部署了多個輕量級配套伺服器(如 Mermaid 處理器),確保各種技術棧的引擎能穩定運行。
  • Encoding Mechanism: 使用 deflate + base64 演算法將原始文本壓縮並編碼進 URL,實現 GET 請求的即時渲染。

2026 關鍵技術更新

  • D2 與 Excalidraw 深度支援: 2026 年版本強化了對現代平鋪式圖表引擎 D2 與手繪風格 Excalidraw 的支援,包括更細緻的樣式參數控制。
  • AI 輔助代碼生成 (實驗性): 配合現代化編輯器插件,Kroki 可整合 LLM,將自然語言描述自動轉換為特定的圖表 DSL,並即時渲染預覽。
  • 增強型向量路徑優化: 優化了 SVG 輸出的精簡度,在保持圖表精確度的前提下,將檔案大小降低了約 20%,顯著提升網頁加載速度。

圖表渲染工具對比 (2026)

特性項目PlantUML ServerMermaid.js (Client)Kroki
支援庫數量單一 (PlantUML)單一 (Mermaid)30+ (包含前者全部)
部署依賴Java Runtime瀏覽器環境Docker / API (輕量化)
渲染位置伺服器端客戶端 (JS)伺服器端 (統一輸出)
二進位相容極強 (統一 API 規範)
適用對象專屬 PlantUML 用戶前端開發者技術文檔架構師、DevOps

數據編碼與通訊延遲模型 (LaTeX)

Kroki 透過 URL 編碼傳遞數據,其請求延遲 Ttotal 主要受編碼效率與後端渲染時間影響。假設圖表代碼長度為 Ltext,壓縮後長度為 Lcomp

Lcomp=Base64(Deflate(Ltext))

總處理時間 Ttotal 可表示為:

Ttotal=Tnetwork+Tgateway_routing+Trender(Type)

其中 Trender 視圖表類型(如 GraphViz 的 Dot 佈局計算量大)而異。Kroki 透過 Vert.x 的事件循環(Event Loop)將 Tgateway_routing 最小化,實現在高併發下的亞秒級響應。


快速部署建議 (Docker)

啟動一個包含所有主流引擎的完整 Kroki 服務:

services:
  kroki:
    image: yuzutech/kroki:latest
    ports:
      - "8000:8000"
    environment:
      - KROKI_MERMAID_HOST=mermaid
      - KROKI_PLANTUML_HOST=plantuml
    restart: always

  mermaid:
    image: yuzutech/kroki-mermaid:latest

  plantuml:
    image: yuzutech/kroki-plantuml:latest

產品說明

Kroki 是技術文件領域的「翻譯官」。在 開發工具 的技術版圖中,它解決了圖表工具鏈過於碎片化、環境安裝極其繁瑣的長期痛點。它不生產圖表引擎,而是將現有的優秀引擎「封裝」成最現代化的服務。其核心價值在於「技術的中立性與便利性」——讓您無需關心底層是 Java 還是 Node.js,只需一段代碼,即可獲得精美的視覺呈現。對於在 2026 年管理大規模文檔系統、或希望在 CI/CD 中自動生成架構圖的團隊來說,Kroki 是構建「文檔即代碼」體系的最終拼圖。