[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-10286":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":47,"readmeContent":48,"aiSummary":49,"trendingCount":16,"starSnapshotCount":16,"syncStatus":50,"lastSyncTime":51,"discoverSource":52},10286,"kroki","yuzutech\u002Fkroki","yuzutech","Creates diagrams from textual descriptions!","https:\u002F\u002Fkroki.io",null,"JavaScript",4189,297,24,134,0,1,21,70,10,29.42,"MIT License",false,"main",true,[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"api","blockdiag","bpmn","bytefield","c4","diagrams","ditaa","erd","excalidraw","graphviz","hacktoberfest","images","mermaid","pikchr","plantuml","svgbob","text","uml","umlet","wavedrom","2026-06-12 02:02:19",":uri-kroki: https:\u002F\u002Fkroki.io\u002F\n:uri-kroki-docs: https:\u002F\u002Fdocs.kroki.io\u002F\n:uri-maven: https:\u002F\u002Fmaven.apache.org\u002F\n\n++++\n\u003Ca href=\"https:\u002F\u002Fkroki.io\u002F\">\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" width=\"200\" srcset=\"https:\u002F\u002Fkroki.io\u002Fassets\u002Flogo-white.svg\">\n  \u003Csource media=\"(prefers-color-scheme: light)\" width=\"200\" srcset=\"https:\u002F\u002Fkroki.io\u002Fassets\u002Flogo.svg\">\n  \u003Cimg alt=\"Kroki logo\" width=\"200\" src=\"https:\u002F\u002Fkroki.io\u002Fassets\u002Flogo.svg\">\n\u003C\u002Fpicture>\n\u003C\u002Fa>\n++++\n---\n\nifdef::env-github[]\nimage:https:\u002F\u002Fgithub.com\u002Fyuzutech\u002Fkroki\u002Fworkflows\u002FCI\u002Fbadge.svg?branch=master[GitHub Actions build status, link=https:\u002F\u002Fgithub.com\u002Fyuzutech\u002Fkroki\u002Factions]\nimage:https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fzulip-join_chat-brightgreen.svg[Zulip chat, link=https:\u002F\u002Fkroki.zulipchat.com\u002F]\nendif::[]\n\n{uri-kroki}[Kroki] provides a unified API with support for BlockDiag (BlockDiag, SeqDiag, ActDiag, NwDiag, PacketDiag, RackDiag), BPMN, Bytefield, C4 (with PlantUML), D2, DBML, Diagrams.net (experimental), Ditaa, Erd, Excalidraw, GoAT, GraphViz, Mermaid, Nomnoml, Pikchr, PlantUML, SvgBob, Symbolator, UMLet, Vega, Vega-Lite, WaveDrom and WireViz... and more to come!\n\n== Quickstart\n\nThis section offers a basic tutorial for evaluating Kroki.\nMore comprehensive installation instructions are in the {uri-kroki-docs}[Kroki documentation].\n\n== Usage\n\nKroki uses a simple algorithm (deflate + base64) to encode your diagram in the URL:\n\n`GET \u002Fplantuml\u002Fsvg\u002FSyfFKj2rKt3CoKnELR1Io4ZDoSa70000`\n\nYou can also call Kroki with `POST`:\n\n POST \u002F\n\n[source,json]\n----\n{\n  \"diagram_source\": \"Bob -> Alice : hello\",\n  \"diagram_type\": \"plantuml\",\n  \"output_format\": \"svg\"\n}\n----\n\nIn this case, you don't need to encode your diagram.\n\nIt's also possible to send your diagram as plain text using the `Content-Type` header.\nThe output format will be specified using the `Accept` header and the diagram source will be sent as the request body:\n\n POST \u002Fplantuml\n\n[source]\n----\nAccept: image\u002Fsvg+xml\nContent-Type: text\u002Fplain\n\nBob -> Alice : hello\n----\n\nYou can also define the output format in the URL if you don't want to add an `Accept` header:\n\n POST \u002Fplantuml\u002Fsvg\n\n[source]\n----\nContent-Type: text\u002Fplain\n\nBob -> Alice : hello\n----\n\nThe same concept applies when sending the diagram as JSON:\n\n POST \u002Fplantuml\u002Fsvg\n[source,json]\n----\n{\n  \"diagram_source\": \"Bob -> Alice : hello\"\n}\n----\n\n== Project layout\n\nKroki has a modular architecture:\n\nserver::\nA Java web server (powered by _Vert.x_) that acts as a gateway.\nKroki server is built using {uri-maven}[Maven].\n\numlet::\nA tiny Java API on top of _UMlet_ (mini) to generate diagrams.\n\nnomnoml::\nA Node.js CLI on top of the _Nomnoml_ diagram library.\n\nvega::\nA Node.js CLI on top of the _vega_ diagram library. Also supports Vega-Lite concise grammar.\n\nmermaid::\nA companion web server written in JavaScript (powered by _micro_) that provides _Mermaid_ diagram library.\n\nbpmn::\nA companion web server written in JavaScript (powered by _micro_) that provides _bpmn-js_ diagram library.\n\nbytefield::\nA Node.js CLI on top of the _bytefield-svg_ diagram library.\n\nwavedrom::\nA Node.js CLI on top of the _wavedrom_ diagram library.\n\nexcalidraw::\nA companion web server written in JavaScript (powered by _micro_) that provides _Excalidraw_.\n\ndiagrams.net::\nA companion web server written in JavaScript (powered by _micro_) that provides _diagrams.net_.\n\n== Build\n\nInstall `task` command-line: https:\u002F\u002Ftaskfile.dev\u002Finstallation\u002F\n\n=== Gateway Server\n\nThe first step is to build the project using Maven:\n\n $ task mavenBuild\n\n=== Docker Images\n\nTo build all the Docker images, use the following command:\n\n $ sudo task dockerBuildImages\n\nNOTE: `sudo` might not be needed depending on your distribution and `docker` configuration.\n\n== Run\n\nOnce the Docker images are built, you can run Kroki using `docker`:\n\n $ docker run -d -p 8000:8000 yuzutech\u002Fkroki\n\n=== Companion Containers\n\nIf you want to use one of the following diagram libraries then you will also need to start the corresponding companion container:\n\nyuzutech\u002Fkroki-mermaid::\nMermaid\n\nyuzutech\u002Fkroki-bpmn::\nBPMN\n\nyuzutech\u002Fkroki-excalidraw::\nExcalidraw\n\nyuzutech\u002Fkroki-diagramsnet (experimental)::\ndiagrams.net\n\nYou can use `docker-compose` to run multiple containers:\n\n.docker-compose.yml\n[source,yml]\n----\nservices:\n  core:\n    image: yuzutech\u002Fkroki\n    environment:\n      - KROKI_MERMAID_HOST=mermaid\n      - KROKI_BPMN_HOST=bpmn\n      - KROKI_EXCALIDRAW_HOST=excalidraw\n    ports:\n      - \"8000:8000\"\n  mermaid:\n    image: yuzutech\u002Fkroki-mermaid\n    expose:\n      - \"8002\"\n  bpmn:\n    image: yuzutech\u002Fkroki-bpmn\n    expose:\n      - \"8003\"\n  excalidraw:\n    image: yuzutech\u002Fkroki-excalidraw\n    expose:\n      - \"8004\"\n  # experimental!\n  diagramsnet:\n    image: yuzutech\u002Fkroki-diagramsnet\n    expose:\n      - \"8005\"\n----\n\n $ docker-compose up -d\n","Kroki 是一个从文本描述生成图表的工具。它提供了一个统一的API，支持多种图表类型，包括PlantUML、Mermaid、GraphViz等，并且能够将这些图表以SVG、PNG等多种格式输出。Kroki的核心技术特点是其模块化架构，基于Java和Node.js开发，使用了Vert.x作为服务器框架。此外，它还支持通过HTTP GET或POST请求来创建图表，使得集成到其他系统中变得非常方便。适用于需要快速生成或展示复杂图表的应用场景，如文档编写、项目管理软件以及在线教育平台等。",2,"2026-06-11 03:27:35","top_topic"]