All Projects → bitjourney → Plantuml Service

bitjourney / Plantuml Service

Licence: other
High-performance HTTP service for PlantUML, used in Kibela

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Plantuml Service

Asciidoctor Kroki
Asciidoctor.js extension to convert diagrams to images using Kroki!
Stars: ✭ 55 (-36.05%)
Mutual labels:  plantuml, uml
PlantUML-colors
This script is to show all named color suggested by PlantUML
Stars: ✭ 52 (-39.53%)
Mutual labels:  uml, plantuml
IPlantUML
A Python package which defines a PlantUML cell magic for IPython.
Stars: ✭ 85 (-1.16%)
Mutual labels:  uml, plantuml
ecto erd
A mix task for generating Entity Relationship Diagram from Ecto schemas available in your project.
Stars: ✭ 173 (+101.16%)
Mutual labels:  uml, plantuml
Aws Plantuml
PlantUML sprites, macros, and other includes for AWS components.
Stars: ✭ 565 (+556.98%)
Mutual labels:  plantuml, uml
C4-PlantumlSkin
This library provides skinning to create C4 diagrams using PlantUml
Stars: ✭ 74 (-13.95%)
Mutual labels:  uml, plantuml
PlantUml-Language-Service
PlantUml Language Service extension for Visual Studio 2017 and 2019
Stars: ✭ 24 (-72.09%)
Mutual labels:  uml, plantuml
Umldoclet
Automatically generate PlantUML diagrams in javadoc
Stars: ✭ 138 (+60.47%)
Mutual labels:  plantuml, uml
Plantuml Editor
PlantUML online demo client
Stars: ✭ 313 (+263.95%)
Mutual labels:  plantuml, uml
idle
parse source code(objective-c, java) generate uml(class diagram)
Stars: ✭ 44 (-48.84%)
Mutual labels:  uml, plantuml
Azure Plantuml
PlantUML sprites, macros, and other includes for Azure services
Stars: ✭ 247 (+187.21%)
Mutual labels:  plantuml, uml
Kroki
Creates diagrams from textual descriptions!
Stars: ✭ 774 (+800%)
Mutual labels:  plantuml, uml
Plantuml Icon Font Sprites
plantuml-font-icon-sprites
Stars: ✭ 242 (+181.4%)
Mutual labels:  plantuml, uml
Plantuml Styler
Online tool to make your PlantUML diagrams look great.
Stars: ✭ 35 (-59.3%)
Mutual labels:  plantuml, uml
C4 Plantuml
C4-PlantUML combines the benefits of PlantUML and the C4 model for providing a simple way of describing and communicate software architectures
Stars: ✭ 3,522 (+3995.35%)
Mutual labels:  plantuml, uml
swagger2puml
Generate Class Diagrams (UML) for Given Swagger Definition
Stars: ✭ 43 (-50%)
Mutual labels:  uml, plantuml
dcdg.dart
Dart Class Diagram Generator
Stars: ✭ 98 (+13.95%)
Mutual labels:  uml, plantuml
Arkit
JavaScript architecture diagrams and dependency graphs
Stars: ✭ 671 (+680.23%)
Mutual labels:  plantuml, uml
Lein Plantuml
A Leiningen plugin for generating UML diagrams using PlantUML
Stars: ✭ 43 (-50%)
Mutual labels:  plantuml, uml
Uml Diagram For Python Design Pattern Examples
UML diagram list of GoF design pattern examples written in Python.
Stars: ✭ 40 (-53.49%)
Mutual labels:  uml

PlantUML HTTP service Build Status

This is a high-performance HTTP interface to PlantUML.

Table of Contents

Install

There's two way to install plantuml-service:

Jar

Get plantuml-service.jar from GitHub releases.

Homebrew Tap

There is a homebrew formula in bitjourney/homebrew-self for macOS:

brew install bitjourney/self/plantuml-service
brew services start bitjourney/self/plantuml-service

Docker

There is a docker image in Docker Hub.

docker pull bitjourney/plantuml-service

Usage

POST /svg where body is the source of PlantUML

Returns an SVG image of the request body, processed by PlantUML.

Because the size of GET requests might be limited by middlewares, the POST API is recommended in production.

GET /svg/:source

Returns an SVG image of :source processed by PlantUML.

:source is source code of PlantUML, encoded in percent encoding.

Example:

Given a PlantUML source code:

@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response

Alice -> Bob: Another authentication Request
Alice <-- Bob: another authentication Response
@enduml

To show it in SVG:

![]($ENDPOINT/%40startuml%0AAlice%20-%3E%20Bob%3A%20Authentication%20Request%0ABob%20--%3E%20Alice%3A%20Authentication%20Response%0A%0AAlice%20-%3E%20Bob%3A%20Another%20authentication%20Request%0AAlice%20%3C--%20Bob%3A%20another%20authentication%20Response%0A%40enduml%0A)

Then, you'll get:

This path takes multiple config parameters to set configuration, for example:

/svg/...?config=scale max 1024 width&config=skin BlueModern

NOTE: you should use server-side RPC to render SVG because browsers have URL limitations.

GET /version

Shows the version of PlantUML and plantuml-service in JSON:

{"PlantUML":"2017.11","plantuml-service":"1.0.9"}

This is also intended to check the service helth.

Example:

Development

Run on local:

./gradlew stage && heroku local:start

Deployment

Run on Heroku

Deploy to Heroku:

# build
./gradlew stage

# run
bin/plantuml-service $PORT

Run with systemd

Here is an example systemd.service(5) config file:

[Unit]
Descrption=PlantUML service
Documentation=https://github.com/bitjourney/plantuml-service
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=$APP_PATH/app/bin/plantuml-service
WorkingDirectory=$APP_PATH/app

User=$APP_USER
Group=$APP_USER

[Install]
WantedBy=multi-user.target

Release Engineering

  1. Create the credential file by echo "oauth=$GITHUB_ACCESS_TOKEN" > ~/.github
  2. Update the version of build.gradle
  3. Run ./gradlew release
    • It uploads artifacts to GitHub
    • And then build the docker image and push the image to Docker Hub
  4. Update the homebrew fomula (see bitjourney/homebrew-self)

About plantuml-service.herokuapp.com

plantuml-service.herokuapp.com is an example service managed by Bit Journey, Inc..

Because this is an example, there's no guarantee for the availability.

See Also

Authors

  • FUJI Goro (gfx)

License

Copyright (c) 2016 Bit Journey, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].