Kroki — это инструмент и сетевой сервис для преобразования текстовых описаний диаграмм в визуальные изображения, поддерживающий множество языков описания диаграмм, таких как PlantUML, Graphviz, Mermaid и другие. Проект предоставляет как публичный бесплатный API, так и возможность самостоятельного развертывания экземпляра, что позволяет интегрировать генерацию диаграмм в различные рабочие процессы, документацию и веб-приложения. Kroki ориентирован на автоматизацию создания графических представлений архитектурных схем, последовательностей, графов и прочих видов диаграмм на основе декларативных текстовых входных данных.
Сервис реализует преобразование текстовых спецификаций в растровые и векторные форматы изображения, абстрагируя пользователей от необходимости устанавливать и настраивать многочисленные отдельные рендереры для каждого формата. Архитектура Kroki обычно включает набор адаптеров или коннекторов к существующим инструментам рендеринга, обеспечивая единый HTTP-интерфейс для отправки описания диаграммы и получения готового визуального вывода. В случаях ограниченной информации о проекте общая функциональность и назначение описаны исходя из стандартных практик для подобных инструментов: конвертация, централизованный API и опции для саморазворачиваемых инстансов.
- Поддержка множества форматов: интеграция с PlantUML, Graphviz, Mermaid и другими языками описания диаграмм.
- HTTP API: единый RESTful-интерфейс для отправки текстовых спецификаций и получения изображений в различных форматах (PNG, SVG и т. п.).
- Публичный и саморазворачиваемый варианты: доступность как общедоступного сервиса и как программно разворачиваемого инстанса для локального или корпоративного использования.
- Абстракция рендеринга: унификация вызовов к разным рендерерам через слой адаптеров, упрощающий интеграцию в инструменты документации и CI/CD.
- Генерация векторной и растровой графики: возможность получать SVG для встраивания в документы и PNG для совместимости с различными приложениями.
- Автоматизация рабочих процессов: применение в системах документации, генерации отчетов, автоматизированных пайплайнах и статических сайтах.
- Конфигурируемость и расширяемость: возможность добавлять дополнительные рендереры и настраивать параметры инстанса при саморазворачивании.
- Упрощение инфраструктуры: централизованное управление рендерерами снижает нагрузку на разработчиков и администраторов, избавляя от необходимости поддерживать множество отдельных инструментов.