{"id":19956348,"url":"https://github.com/plantuml/plantuml-stdlib","last_synced_at":"2026-01-25T09:33:46.486Z","repository":{"id":41526940,"uuid":"111123207","full_name":"plantuml/plantuml-stdlib","owner":"plantuml","description":"Contains official Standard Library for PlantUML","archived":false,"fork":false,"pushed_at":"2026-01-10T10:58:03.000Z","size":83599,"stargazers_count":628,"open_issues_count":8,"forks_count":135,"subscribers_count":20,"default_branch":"master","last_synced_at":"2026-01-11T03:30:12.557Z","etag":null,"topics":["icon","sprite","stdlib"],"latest_commit_sha":null,"homepage":"https://plantuml.com/stdlib","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/plantuml.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"plantuml","patreon":"plantuml","liberapay":"plantuml"}},"created_at":"2017-11-17T16:05:22.000Z","updated_at":"2026-01-10T10:58:06.000Z","dependencies_parsed_at":"2025-10-22T10:24:15.866Z","dependency_job_id":null,"html_url":"https://github.com/plantuml/plantuml-stdlib","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/plantuml/plantuml-stdlib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plantuml%2Fplantuml-stdlib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plantuml%2Fplantuml-stdlib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plantuml%2Fplantuml-stdlib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plantuml%2Fplantuml-stdlib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plantuml","download_url":"https://codeload.github.com/plantuml/plantuml-stdlib/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plantuml%2Fplantuml-stdlib/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28750875,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T09:00:19.176Z","status":"ssl_error","status_checked_at":"2026-01-25T09:00:04.131Z","response_time":113,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["icon","sprite","stdlib"],"created_at":"2024-11-13T01:33:31.876Z","updated_at":"2026-01-25T09:33:46.473Z","avatar_url":"https://github.com/plantuml.png","language":"Java","funding_links":["https://github.com/sponsors/plantuml","https://patreon.com/plantuml","https://liberapay.com/plantuml"],"categories":[],"sub_categories":[],"readme":"# plantuml-stdlib\nContains official Standard Library for PlantUML.\n_See http://plantuml.com/stdlib for more information._\n\nThis Standard Library is included in official release of PlantUML.\nFollowing the C convention for \"C standard library\" _(see https://en.wikipedia.org/wiki/C_standard_library)_\n\n## Amazon Web Services\n\n### AWS Icons\n\nPlantUML images, sprites, macros, and other includes for Amazon Web Services (AWS) services and resources. Used to create PlantUML diagrams with AWS components. All elements are generated from the official [AWS Architecture Icons](https://aws.amazon.com/architecture/icons/) and when combined with [PlantUML](http://plantuml.com/) and the [C4 model](https://c4model.com/), are a great way to communicate your design, deployment, and topology as code.\n\nBesides usage as custom sprites on PlantUML components, different types of diagrams can quickly and easily be created with the icons.\n\nMore info on [awslabs github account](https://github.com/awslabs/aws-icons-for-plantuml).\n\n### AWS library [aws]\n\nThe AWS library consists of Amazon AWS icons, it provides icons of two different sizes.\n\nUse it by including the file that contains the sprite, eg: `!include \u003caws/Storage/AmazonS3/AmazonS3\u003e`.\nWhen imported, you can use the sprite as normally you would, using `\u003c$sprite_name\u003e`.\n\nYou may also include the `common.puml` file, eg: `!include \u003caws/common\u003e`, which contains helper macros defined.\nWith the `common.puml` imported, you can use the `NAME_OF_SPRITE(parameters...)` macro.\n\nExample of usage:\n```plantuml\n@startuml\n    !include \u003caws/common\u003e\n    !include \u003caws/Storage/AmazonS3/AmazonS3\u003e\n    !include \u003caws/Storage/AmazonS3/bucket/bucket\u003e\n\n    AMAZONS3(s3_internal)\n    AMAZONS3(s3_partner,\"Vendor's S3\")\n    s3_internal \u003c- s3_partner\n@enduml\n```\n\nThis example renders the following image:\n\n![Example](http://www.plantuml.com/plantuml/png/SoWkIImgAStDuLBCp4lEAKr9LR19B2_MJyxFpStFiqCJ3Ix9BqfCJzLtp4sioiyBDeOp22fCAatEJYs1KdPSN8w-Zb7-Vi766iN6yPbv9Qb5UOavcYYY1K1tvQKMwIY5fUQbv1Uf5oi46ojfSY6fLx3HLK0ev780gWDw1000 \"Example\")\n\n### Amazon Labs AWS Library [awslib]\n\n_Todo: TBC..._\n\n## Azure library [azure]\n\nThe Azure library consists of Microsoft Azure icons.\n\nUse it by including the file that contains the sprite, eg: `!include \u003cazure/Analytics/AzureEventHub.puml\u003e`.\nWhen imported, you can use the sprite as normally you would, using `\u003c$sprite_name\u003e`.\n\nYou may also include the `AzureCommon.puml` file, eg: `!include \u003cazure/AzureCommon.puml\u003e`, which contains helper macros defined.\nWith the `azure/AzureCommon.puml` imported, you can use the `NAME_OF_SPRITE(parameters...)` macro.\n\nExample of usage:\n```plantuml\n@startuml\n    !include \u003cazure/AzureCommon\u003e\n    !include \u003cazure/Analytics/AzureEventHub\u003e\n    !include \u003cazure/Analytics/AzureStreamAnalyticsJob\u003e\n    !include \u003cazure/Databases/AzureCosmosDb\u003e\n\n    left to right direction\n\n    agent \"Device Simulator\" as devices #fff\n\n    AzureEventHub(fareDataEventHub, \"Fare Data\", \"PK: Medallion HackLicense VendorId; 3 TUs\")\n    AzureEventHub(tripDataEventHub, \"Trip Data\", \"PK: Medallion HackLicense VendorId; 3 TUs\")\n    AzureStreamAnalyticsJob(streamAnalytics, \"Stream Processing\", \"6 SUs\")\n    AzureCosmosDb(outputCosmosDb, \"Output Database\", \"1,000 RUs\")\n\n    devices --\u003e fareDataEventHub\n    devices --\u003e tripDataEventHub\n    fareDataEventHub --\u003e streamAnalytics\n    tripDataEventHub --\u003e streamAnalytics\n    streamAnalytics --\u003e outputCosmosDb\n@enduml\n```\n\nThis example renders the following image:\n\n![Example](http://www.plantuml.com/plantuml/proxy?idx=0\u0026src=https%3A%2F%2Fraw.githubusercontent.com%2FRicardoNiepel%2FAzure-PlantUML%2Fmaster%2Fsamples%2FBasic%2520usage%2520-%2520Stream%2520processing%2520with%2520Azure%2520Stream%2520Analytics.puml \"Example\")\n\n## C4 library (C4-PlantUML) [C4]\n\nThe C4 library enables a simple way of describing and communicate software architectures with an intuitive language.\n\nIt is the PlantUML integrated version of [C4-PlantUML](https://github.com/plantuml-stdlib/C4-PlantUML) and has the big advantage that it can be used without additional external includes.\n(E.g. container diagrams can be drawn with `!include \u003cC4/C4_Container\u003e` and no `!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml` is required.)\n\nExample of usage:\n\n```plantuml\n@startuml\n!include \u003cC4/C4_Container\u003e\nLAYOUT_LEFT_RIGHT()\n\nPerson(admin, \"Administrator\")\nSystem_Boundary(c1, \"Sample System\") {\n    Container(web_app, \"Web Application\", \"C#, ASP.NET Core 2.1 MVC\", \"Allows users to compare multiple Twitter timelines\")\n}\nSystem(twitter, \"Twitter\")\n\nRel(admin, web_app, \"Uses\", \"HTTPS\")\nRel(web_app, twitter, \"Gets tweets from\", \"HTTPS\")\n\nSHOW_LEGEND()\n@enduml\n```\n\nThis example renders the following image:\n\n[![Example](https://www.plantuml.com/plantuml/png/JL1TQy9047o_Nx5DNn8GYyN7KanJgmMhOivAdyAPRE7WFiBT1f7I_zvDjTfxMUvcPcTk9f5KeCuQSQDTRRe6uQ4OtnNZgl2Eb7OO7iKY_rXjPRMOliXgypgRopGJOeqXUfUgncetW2JlfuuK5FcGPA8yHa9RFVdEDIeSqth4f5BPrY2Si2I3Bm5yBaxf0VULQbjcxd0FUTiQNIlItYNyLDmE82_Nm-LKiYGWt0z7yFPUz5XkZ3z4w2A62EIXzhPLJB6T8TrRoeCcmW2aBHhsYXpn-nmofHF8Uyuq1iK6pT_dhh6saPKyvrAkooJx9LtGwvePKkGhzkCpUFjV8ihvQiTTpgRBP-vnWgxX-dy0)](https://www.plantuml.com/plantuml/uml/JL1TQy9047o_Nx5DNn8GYyN7KanJgmMhOivAdyAPRE7WFiBT1f7I_zvDjTfxMUvcPcTk9f5KeCuQSQDTRRe6uQ4OtnNZgl2Eb7OO7iKY_rXjPRMOliXgypgRopGJOeqXUfUgncetW2JlfuuK5FcGPA8yHa9RFVdEDIeSqth4f5BPrY2Si2I3Bm5yBaxf0VULQbjcxd0FUTiQNIlItYNyLDmE82_Nm-LKiYGWt0z7yFPUz5XkZ3z4w2A62EIXzhPLJB6T8TrRoeCcmW2aBHhsYXpn-nmofHF8Uyuq1iK6pT_dhh6saPKyvrAkooJx9LtGwvePKkGhzkCpUFjV8ihvQiTTpgRBP-vnWgxX-dy0)\n\n## Classy library [classy]\n\nThe Classy library allows for using an Object Oriented approach to diagramming\nin PlantUML.\n\nThat is to say that it allows you to define and instantiate your own classes as\nwell as allow you to call methods defined on those classes. You can also inherit\nfrom one or more classes where desired.\n\nUse it by including the file that contains the Classy class that you want to use\nwithin your diagram. Alternatively, if you want to define your own type, you can\njust include the `core.puml` file, eg: `!include \u003cclassy/core\u003e`, which contains\nall of the necessary functions.\n\nExample of usage:\n```plantuml\n@startuml\n\n    !include \u003cclassy/core\u003e\n\n    $class(HelloWorld)\n        $classVar(msg, string, \"Hello World!\")\n\n        $classMethod(getMessage)\n            !function HelloWorld__getMessage($this)\n                !return $getInstanceVar($this, 'msg')\n            !endfunction\n        $endclassMethod(getMessage)\n\n        $classMethod(setMessage)\n            !function HelloWorld__setMessage($this, $args)\n                $setInstanceVar($this, 'msg', $call($args, 'each'))\n                !return $this\n            !endfunction\n        $endclassMethod(setMessage)\n        $endclass(HelloWorld)\n\n        !$hello = $new(HelloWorld)\n        Alice -\u003e Bob : $call($hello, 'getMessage')\n\n        $call($hello, 'setMessage', array($new(array), '2nd message!'), $void=%true())\n        Alice -\u003e Bob : $call($hello, 'getMessage')\n\n@enduml\n```\n\nThis example renders the following image:\n\n![Example](http://www.plantuml.com/plantuml/png/SoWkIImgAStDuNBAJrBGjLDmpCbCJbMmKl18pSd9LmZFByf9KKINCyfBKSXDBIvEJ4zLKEHoICrB0He00000)\n\n## Classy C4 library [classy-c4]\n\nThe Classy C4 library combines the Classy and C4 libraries by defining Classy\nclasses that wrap the C4 macros.\n\nExample of usage:\n```plantuml\n@startuml\n\n    !include \u003cclassy-c4/container\u003e\n    !include \u003cclassy-c4/person\u003e\n    !include \u003cclassy-c4/system\u003e\n\n    !$system = $new(System)\n    $call($system, 'setName', 'Label', $void=%true())\n    $call($system, 'setDescription', 'Optional Description', $void=%true())\n\n    !$person = $new(Person)\n    $call($person, 'setName', 'Label', $void=%true())\n    $call($person, 'setDescription', 'Optional Description', $void=%true())\n\n    !$container = $new(Container)\n    $call($container, 'setName', 'Label', $void=%true())\n    $call($container, 'setDescription', 'Optional Description', $void=%true())\n    $call($container, 'setTechnology', 'Technology', $void=%true())\n\n    !$personAlias = $call($person, 'render')\n    !$containerAlias = $call($container, 'render')\n    $call($system, 'render', $void=%true())\n\n    Rel($personAlias, $containerAlias, \"Label\", \"Optional Technology\")\n\n@enduml\n```\n\nThis example renders the following image:\n\n![Example](http://www.plantuml.com/plantuml/png/ZOvFIyGm4CNl-HIrfowupMLFdbQgjnKN_vnbcWxRm6GICXDalxtPWaKHnTDxCypxpTkBGjOIg1bsR_U40Ld5N7bsL2PiPjKaDzPcUEzFNkSo5i7i8YkozYu6cmZuaj-AJkH7E-osnylgzU5W0uXYjfKyr0HunjodUclC4RD4xj8Yj-H1hfls02DIMyrZKXyPgBb3STalKxinAwHpd-v7z0NTp97YwVm7wFaiYg6JHVxxtJmXVI-yjlWTyQNEnkoHfnBe0m00)\n\n## Edgy Enterprise Design [edgy]\nEdgy is an Open Source tool for collaborative Enterprise Design. The library is an adaption of the EDGY Tools for PlantUML usage.\n\nThe Sprites are based on the [Enterprise Design with EDGY](https://www.enterprise.design/). They'll be rendered as SVG sprites, so you need a quite actual PlantUML distribution.\n\nUse it by including the file that contains the sprite, eg: `!include \u003cedgy/edgy\u003e`.\nThere are two visual sets:\n* `!include \u003cedgy/edgy\u003e` is the visualization according to the open source set of edgy.\n* `!include \u003cedgy/edgy2\u003e` is the one which describes with stereotypes what kind of element it is. If you have color blinded people, this one could be the better one.\nAll procedures are compatible between both sets. So you can begin with one and switch to the other just to have a look which of the one fits visually the best.\n\nThe library is not complete yet, but it's a good start.\n\nIn general, the procedures for elements and facets do have the form of\n```plantuml\n$elementorfacet(\"label\", alias, lighterColor)\n```\n* ```\"label\"``` is the name of the element or facet. It is mandatory.\n* ```alias``` is used for linking elements and facets. It is optional.\n* ```lighterColor``` is used as a boolean value (!) to use a lighter color for the element or facet. It is optional.\n  * Facets are drawn with lighter colors than Elements as default.\n  * ```0``` is false. Any other value is true.  Or use ```%true()``` and ```%false()``` (see [Boolean expression in Preprocessing](https://plantuml.com/de/preprocessing#55eb000153a81c72)).\n\n### Facets\nFacets do have the edgy facet name followed with ```Facet``` as tail, to distinguish them from elements.\nThe following facets are implemented: ```$baseFacet```,```$identityFacet```,```$brandFacet```,```$experienceFacet```,```$productFacet```,```$architectureFacet```,```$organisationFacet```\n\n### Elements\nElements do have the edgy element name.\nThe following elements are implemented:\nBase: ```$people```,```$outcome```,```$activity```,```$object```\nIdentity: ```$purpose```,```$story```,```$content```\nBrand: ```$brand```\nExperience: ```$task```,```$channel```,```$journey```\nProduct: ```$product```\nArchitecture: ```$capability```,```$asset```,```$process```\nOrganisation: ```$organisation```\n\nElements can be nested into facets:\n```plantuml\n$architectureFacet(\"Architecture\") {\n  $capability(\"Capability\")\n}\n```\n\nHowever, it is also possible to nest elements if needed:\n```plantuml\n$capability(\"Customer Interaction\") {\n    $capability(\"Passenger Services\", pass, 1) {\n        $capability(\"Passenger Information\", info)\n    }\n}\n```\n\n### Links\nLinks do have the form of\n```plantuml\n$link(fromAlias, toAlias, \"label\")\n```\n* ```fromAlias``` is the starting element or facet. It is mandatory.\n* ```toAlias``` is the target element or facet. It is mandatory.\n* ```\"label\"\"``` is a label written on the connection. This is optional.\n\nThere are only three sort of links:\n* ```$link``` is a unidirectional link between elements or facets.\n* ```$flow``` is a directed flow between elements or facets.\n* ```$tree``` is a hierarchical representation of elements as a tree relationship.\n\nGenerally, all links do have the possibility to give the rendere a hint in which direction the link should be drawn. This is done by adding ```Up```, ```Down```, ```Left```, ```Right``` as a tail to the link name (e.g. ```$linkUp```, ```$linkDown```, ```$linkLeft```, ```$linkRight```).\n\n### Concrete example of usage:\n```plantuml\n@startuml\n    !include \u003cedgy/edgy\u003e\n\n    $identityFacet(\"This is the Identity facet\", identity) {\n        $content(\" This is the Content element\", content)\n        $purpose(\"This is the Purpose element\", purpose)\n        $story(\"This is the Story element\", story)\n    }\n\n    $link(content, purpose)\n    $link(content, story)\n    $link(purpose, story)\n@enduml\n```\n\n## EIP-PlantUML [eip]\n\nEIP-PlantUML provides [Enterprise Integrations Patterns](https://www.enterpriseintegrationpatterns.com/) elements to [PlantUML](http://plantuml.com/) to provide easy support of designing EIP architectures for both, up-front design as well as development-time automated documentation generation.\nExample of usage:\n```plantuml\n@startuml\n    !include \u003ceip/EIP-PlantUML\u003e\n    !theme mars\n    skinparam linetype ortho\n    left to right direction\n    folder \"RabbitMQ\" #line.dashed {\n        Message(msg0, Message)\n        Message(msg1, Message)\n        Message(msg2, Message)\n        MsgChannel(ch0, inQueue)\n        MsgChannel(ch1, outQueue)\n        MsgChannel(ch2, outQueue)\n        MessageRouter(rt0, Router)\n    }\n    Send(msg0, ch0)\n    Send(ch0, rt0)\n    Send(rt0, msg1)\n    Send(rt0, msg2)\n    Send(msg1, ch1)\n    Send(msg2, ch2)\n@enduml\n```\nThis example renders the following image:\n![Example](https://cdn-0.plantuml.com/plantuml/png/VP3FIiD04CRlFiMsNbgmYURegI0U10DjnGVOPAVPnVqJPcOH4T_TtOrY2x5p29dVzsM-cMo99N9qzcfXV6-Z0g6PHxglQvJlrM1OnouIO1yyW-Ug3wuUhVJvcmsnigQh7vzscrrch-rpxQJnjJB4PxWQSuP8jM0D3eIJIAMdD-D7YT89QppmnmWY8EjGH0j75Xm4ca6pK0QXPnDyqOx1Aa2nFCYkCzpkb-8wJwYK90rAV6PJgHQ8v00hHyFjpM-tdfFlBilDd4p3WvRUWrtrEeqtVXyX_cT80I7o9KSpwvXI3qa1N26ddEbzidoLvmjuzNDZscJznyfUoAUeZCW7px3cX4t_9ErzpfhCac-R-kZiDm00)\n\n## Elastic library [elastic]\n\nThe Elastic library consists of [Elastic](https://www.elastic.co) icons.\nIt is similar in use to the AWS and Azure libraries (it used the same tool to create them).\n\nUse it by including the file that contains the sprite, eg: `!include \u003celastic/elasticsearch/elasticsearch.puml\u003e`.\nWhen imported, you can use the sprite as normally you would, using `\u003c$sprite_name\u003e`.\n\nYou may also include the `common.puml` file, eg: `!include \u003celastic/common\u003e`, which contains helper macros defined.\nWith the `common.puml` imported, you can use the `NAME_OF_SPRITE(parameters...)` macro.\n\nExample of usage:\n```plantuml\n@startuml\n    !include \u003celastic/common\u003e\n    !include \u003celastic/elasticsearch/elasticsearch\u003e\n    !include \u003celastic/logstash/logstash\u003e\n    !include \u003celastic/kibana/kibana\u003e\n\n    ELASTICSEARCH(ElasticSearch, \"Search and Analyze\",database)\n    LOGSTASH(Logstash, \"Parse and Transform\",node)\n    KIBANA(Kibana, \"Visualize\",agent)\n\n    Logstash -right-\u003e ElasticSearch: Transformed Data\n    ElasticSearch -right-\u003e Kibana: Data to View\n\n@enduml\n```\n\nThis example renders the following image:\n![Example](http://www.plantuml.com/plantuml/png/TOxFQiCm38VlUGejfnHITYyZrEl2MXgsCOVUrLXBpFm7R8UnFVrI9oNa41yi6N-VVjhxW2xqMYKmd0Tf6jKBWYTIw8Di7XkhjJN5okzKFQ5hkkLhJL6szG5zTszMmMzvHODJAP98bHNZzUd0I_PvE6RbIFAObqCwDe1603EeVlyepGK6lAAdJVIhzrTUCtxCgYbyi3xGUOfIxT3uB-jqcXih9kLyUcPlB3l7DGRy8dsFIjvcOqicR21YyRfFXQsJRHUs1InMtCq99E050qPhmSpgcBYB70GB5qa_IR8d8tgj_W40)\n\n## Google Cloud Platform [gcp]\n\n```plantuml\n@startuml\n    !include \u003cgcp/GCPCommon\u003e\n    !include \u003cgcp/Compute/Cloud_Functions\u003e\n    !include \u003cgcp/Networking/Cloud_Firewall_Rules\u003e\n    !include \u003cgcp/Compute/Compute_Engine\u003e\n    !include \u003cgcp/Storage/Cloud_Storage\u003e\n\n    Cloud_Functions(Cloud_FunctionsStart, \"Start Server\", \"Cloud Functions\")\n    Cloud_Functions(Cloud_FunctionsStop, \"Stop Server\", \"Cloud Functions\")\n    Cloud_Functions(Cloud_FunctionAdd, \"Add a Friend\", \"Cloud Functions\")\n    Compute_Engine(Compute_Engine, \"MineCraft Server\", \"Compute Engine\")\n    Cloud_Storage(Cloud_Storage, \"MineCraft Backups\", \"Cloud Storage\")\n    Cloud_Firewall_Rules(Cloud_Firewall_Rules_Starter,\"Minecraft Backups\", \"Cloud Firewall Rules\")\n    Cloud_Firewall_Rules(Cloud_Firewall_Rules_Friend,\"Minecraft Backups\", \"Cloud Firewall Rules\")\n@enduml\n```\nThis example renders the following image:\n\n![Example](http://cdn-0.plantuml.com/plantuml/png/lP9FJm8n4CNlV8hAQKs0tZsX6_4YXaWyR-fsN1hwPpETojTttBgQ4X9335wOFFBUxz4Nbf4KKd9sScLyQvC6iIFguusKg0wBpj0klQO8s0PFu6dH1YThL747sXclvSOgJo_hnxbXHvm_r1lfL2H0gKqaoReEpWM_w2zNmWrz8f2r3Katg-HRCkoxPEKJq27WtlXkR3K81sLjyvmin7zvRRxDlU-CXqisRYcWwiPzlrGkd4oEHg-Ez9OKqanCXoksWE-0KzQ3JNpRfjU_WqBFkS_p1yojrfpYJw742WruVPfIZbkLaXDhFhpWM_6aR1BPn91YhwfG1U9EjVlKnvzVaaqZulZFLPtwiXa61fmDtFOqTuo88N8MFezr7dt9YUJi1m00)\n\n## K8S [k8s]\n\nThese are the PlantUML sprites, macros and stereotypes for creating PlantUML diagrams with the Kubernetes components. The official Kubernetes Icons Set (where this work is based) can be found here\nThis repo is heavily influenced by the awesome work from Ricardo Niepel on Azure-PlantUML\nExample of usage:\n```plantuml\n@startuml\n    !include \u003ck8s/Common\u003e\n    !include \u003ck8s/Simplified\u003e\n    !include \u003ck8s/OSS/all\u003e\n    footer Kubernetes Plant-UML\n    scale max 1024 width\n    skinparam {\n        nodesep 10\n        ranksep 10\n    }\n    actor \"User\" as userAlias\n    left to right direction\n    Cluster_Boundary(cluster, \"Kubernetes Cluster\") {\n        Namespace_Boundary(ns, \"Web\") {\n            KubernetesSvc(svc, \"service\", \"\")\n            KubernetesPod(pod1, \"web-pod1\", \"\")\n            KubernetesPod(pod2, \"web-pod2\", \"\")\n        }\n    }\n    Rel(userAlias,svc,\"get HTTP/1.1 index.html\", \"1\")\n    Rel(svc,pod1,\"load Balances to Pods\", \"2\")\n    Rel(svc,pod2,\"load Balances to Pods\", \"2\")\n    Rel_U(pod1, svc, \"serves content\", \"3\")\n    Rel(svc, userAlias, \"return content to\", \"4\")\n@enduml\n```\nThis example renders the following image:\n\n![Example](http://cdn-0.plantuml.com/plantuml/png/ZPDFYzim4CNl-HIpFcLX4zVk7afFszrBeNyQcWqzXeaqYKNqnqYZ9ANiTw_aDR6RKXeTZ9ZtUyFe3Nu8Z9wZqPCRILjb2VRl0ZJCRNXVbXwFyvtY9cvY82-SPR8y5ywKKc10LkK-RiXROWgpXKRBgo-VIuE1oPTI1Pv0EZVA2XqbHQzpzv5d_UICSNRUvW7-Yrgc4r_5BfLfjTegal_6losNvQUpPNaGrw8BD-gwTOx9mw12Ze5dAOTE3m8rWS4JL6_gUpWgoSshi5UsHOy6VasWFzP92jGcz5poQFUZqaltHS7EGx4Av0l007av7xJ2qAcQjWpimAjTmo2L9y7AsKvxqZ7lPlteefNeVqx5Q-4EYj4JUggu7Sts5Gs55WKDNXkIxGTj1gu_VyGw3GUHk43-e0GLwLhSNj93ijFMoIenHzhCylKQlXxu-e9_cGpVxwIdvwJkybJ5ZXW-FZylocfUWRAIJlE6ZSvDgkBsxCfiDrUX7KfuH8rMKCWXfn52nkk_yVewVBtgtppabDZ-NylisulMmxgJw8cZjpsUrvuTzydnG5P6ety3)\n\n\n## Tupadr3 library [tupadr3]\n\nThis library contains several libraries of icons (including Devicons and Font Awesome )\n\nUse it by including the file that contains the sprite, eg: `!include \u003ctupadr3/font-awesome/align_center\u003e`.\nWhen imported, you can use the sprite as normally you would, using `\u003c$sprite_name\u003e`.\n\nYou may also include the `common.puml` file, eg: `!include \u003ctupadr3/common\u003e`, which contains helper macros defined.\nWith the `common.puml` imported, you can use the `NAME_OF_SPRITE(parameters...)` macro.\n\nExample of usage:\n```plantuml\n@startuml\n    !include \u003ctupadr3/common\u003e\n    !include \u003ctupadr3/font-awesome/server\u003e\n    !include \u003ctupadr3/font-awesome/database\u003e\n\n    title Styling example\n\n    FA_SERVER(web1,web1) #Green\n    FA_SERVER(web2,web2) #Yellow\n    FA_SERVER(web3,web3) #Blue\n    FA_SERVER(web4,web4) #YellowGreen\n    FA_DATABASE(db1,LIVE,database,white) #RoyalBlue\n    FA_DATABASE(db2,SPARE,database) #Red\n\n    db1 \u003c--\u003e db2\n    web1 \u003c--\u003e db1\n    web2 \u003c--\u003e db1\n    web3 \u003c--\u003e db1\n    web4 \u003c--\u003e db1\n@enduml\n```\n\nThis example renders the following image:\n\n![Example](http://www.plantuml.com/plantuml/png/XOvHIyCm58NVyolkyC49hMNjdcICTTZ9OC9eTU2JfCjr2wH9QMwj-_ScpbagWY-1mtU-axkmn1jgAyMkOQkufkV73LWIIfQWJGTIxrKhqC9wRtIuCfgWg1j9Q4TG8CAHgBPtKNIGT6pBsxsf8cfhBfeagjsSNmwbLz-S6jgpojZeUnTcbxOpAwFdVv0latTeJOMHnUOTctzhWXClkSKvOoH98HHqKb8V03zuLIjaR9M-5bc-o_9nX-KayCyDN3qqY7h8OizYnrvGATCDOU9Xuk1IjJX4Ku-cFzvvsLVkqwTqcHRPMBX_D-jT5bok3RgZ97HARavS-SbV_JWejcdU2xwAWZ6t1BCmd8EhCDPX7oS-nOEK3DAqJmlKegtK9m00 \"Example\")\n\n## Google Material Icons [material]\n\nThis library consists of a free Material style icons from Google and other artists.\n\nUse it by including the file that contains the sprite, eg: `!include \u003cmaterial/folder_move\u003e`.\nWhen imported, you can use the sprite as normally you would, using `\u003c$ma_sprite_name\u003e`.\nNotice that this library requires an `ma_` preffix on sprites names, this is to avoid clash of names if multiple sprites have the same name on different libraries.\n\nYou may also include the `common.puml` file, eg: `!include \u003cmaterial/common\u003e`, which contains helper macros defined.\nWith the `common.puml` imported, you can use the `MA_NAME_OF_SPRITE(parameters...)` macro, note again the use of the prefix `MA_`.\n\nExample of usage:\n```plantuml\n@startuml\n    !include \u003cmaterial/common\u003e\n    ' To import the sprite file you DON'T need to place a prefix!\n    !include \u003cmaterial/folder_move\u003e\n\n    MA_FOLDER_MOVE(Red, 1, dir, rectangle, \"A label\")\n@enduml\n```\n\nThis example renders the following image:\n\n![Example](http://www.plantuml.com/plantuml/png/PSn12i8m40NGVK_nsqqL0k9U2eNMbRLGYjiIawa69faGKz7RUm3V0LxfWk7D4avUPqfEyy68znAQeiOiS3vAoiXFmYicbmchOy9NDdJZjPuHY2oo8B8s18sOQ7MViYZ_urNOKbgylAafYg5TpkEbwwTb66_zRYAhS5ImBYaaCbc71vD2rOBrdRZQ_m00 \"Example\")\n\n## Domain Story library (DomainStory-PlantUML) [DomainStory]\n\nThis library provides a set of macros to easily describe and document a domain story which was developed in\na [Domain Storytelling](http://www.domainstorytelling.org) workshop.\n\nFor more usage instructions see [DomainStory-PlantUML](https://github.com/johthor/DomainStory-PlantUML).\n\nExample of usage:\n\n```plantuml\n@startuml\n    !include \u003cDomainStory/domainStory\u003e\n\n    Boundary(System) {\n        Person(Alice)\n        Conversation(weather)\n        Person(Bob)\n    }\n    activity(1, Alice, talks about the, weather, with, Bob)\n@enduml\n```\n\nThis example renders the following image:\n\n![Example](http://www.plantuml.com/plantuml/png/JSx1IWGn30RWUv-YtcPWdEBLqxfwL5XOV81C9zXg9rdQlxiCuhlR7GGtf_0bVyYkW3BgainT59_gp3O0f_BeNARB-14HwbGBPwy25enU5_Uf0K6pUz65eXoXURq_91AylxswAxdvVpAUhjVDNglCbDVkk1RmqjjlOriTE1ULxYb5p_qcpohdXeJO_CA4mBc_tTthr9iVOyWZdYFMxc6mMtwmeFHLB4rQOH4Q_ELR4n46kqLtB7DxwHS0\n \"Example\")\n\n## Notes\n\nWhen mixing sprites macros with other elements you may get a syntax error if, for example, trying to add a rectangle along with classes.\nIn those cases, add `{` and `}` after the macro to create the empty rectangle.\n\nExample of usage:\n```plantuml\n@startuml\n    !include \u003cmaterial/common\u003e\n    ' To import the sprite file you DON'T need to place a prefix!\n    !include \u003cmaterial/folder_move\u003e\n\n    MA_FOLDER_MOVE(Red, 1, dir, rectangle, \"A label\") {\n    }\n\n    class foo {\n        bar\n    }\n@enduml\n```\n\nThis example renders the following image:\n\n![Example](http://www.plantuml.com/plantuml/png/ROz1Yi9044NtVOgl6sSW8Eu7KT1PJGm4SHlAxeesL7U5IaUKOUu-EO1_zzxYmT-DXQnCITmYPYzJO7mbAcoHPEqr9SrRjy9P4TEWLb3kZ76mM1Xz5CPB9noQq-gCp1nG58EGPn06upu-5-_2lKfWwv8-UEjSlU--cv_3iUtgvdByQ3bKs5G8qIeO-qBv9bnXkOVGbMNvYL_tvvmN6aVqgZDYtfLirZlEORxp3m00 \"Example\")\n\n\n## Sources\n\n* **aws**: made by https://github.com/milo-minderbinder/AWS-PlantUML\n* **classy**: made by https://github.com/james-gadrow-kr/classy-plantuml\n* **classy-c4**: made by https://github.com/james-gadrow-kr/classy-c4\n* **tupadr3**: made by https://github.com/tupadr3/plantuml-icon-font-sprites\n* **Material Icons**: from https://github.com/Templarian/MaterialDesign\n* **Elastic Icons**: from https://github.com/Crashedmind/PlantUML-Elastic-icons\n* **Domain Story**: from https://github.com/johthor/DomainStory-PlantUML\n\nYou can create Pull Request to update or add some library here if you find it relevant.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplantuml%2Fplantuml-stdlib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplantuml%2Fplantuml-stdlib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplantuml%2Fplantuml-stdlib/lists"}