Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Plantuml Client

Plantuml Client Laravel Package

jawira/plantuml-client

jawira/plantuml-client is a PHP library that converts PlantUML diagrams into images using a remote server, so you don't need to install PlantUML locally. Install it via Composer and generate diagrams without any local dependencies.

View on GitHub
Deep Wiki
Context7

Convert PlantUML diagrams into images.

Frequently asked questions about Plantuml Client
What is jawira/plantuml-client used for in a Laravel application?
It is a thin PHP client that sends PlantUML source to a PlantUML rendering server over HTTP and returns the generated image, so your app can produce diagrams without installing plantuml.jar or Java locally. Typical Laravel uses are generating diagrams in documentation pipelines, exporting reports, and rendering architecture diagrams in admin tooling. Because it is framework-agnostic, you can call it from a controller, a queued job, or an artisan command.
How do I install jawira/plantuml-client with Composer?
Run composer require jawira/plantuml-client and the library is available via Composer's autoloader. There is no service provider to register and no configuration file to publish, so installation is a single command. You then instantiate the client in your own code or bind it in a Laravel service provider.
Does jawira/plantuml-client support Laravel 10 and Laravel 11?
The package is framework-agnostic PHP and does not depend on Illuminate components, so it fits any Laravel version that runs your supported PHP runtime. However, the release notes for v1.1.1 do not publish an explicit supported-PHP or supported-Laravel matrix. Check composer.json for the PHP constraint and run your test suite against your target runtime before committing.
Do I need to install PlantUML or Java on my server to use it?
No. The whole point of the library is that rendering happens on a PlantUML server, either a public service or a self-hosted PlantUML server you control. That removes the Java and Graphviz dependency from your application hosts. The trade-off is that diagram generation now depends on an external HTTP endpoint.
Does the package include a Laravel service provider or config file?
No, it ships no service provider and no publishable configuration, which is consistent with its framework-agnostic design. You are expected to wire it yourself, for example by binding a DiagramRenderer contract in your AppServiceProvider so the PlantUML dependency stays swappable. This keeps adoption trivial but also means nothing guards or configures the client for you by default.
How should I test PlantUML diagram generation in Laravel?
Wrap the client behind your own interface and use Laravel's HTTP fakes to assert the outgoing request and stub the image response, so tests never hit a real PlantUML server. That approach also lets you assert the encoded diagram payload without depending on network availability. Keeping the wrapper small means your application tests stay fast and deterministic.
Does jawira/plantuml-client handle timeouts and retries for the PlantUML server call?
The v1.1.1 release is maintenance-only and does not add retry logic, timeout handling, or other hardening around the external HTTP call. That contract is effectively yours to own, so configure sensible timeouts in your HTTP client and decide whether transient failures should be retried. In production you should also decide on a fallback when the PlantUML server is unavailable.
Should I render diagrams synchronously in a request or queue the job?
Every diagram is an outbound HTTP request to a PlantUML server, so rendering inline in a user request inherits that endpoint's latency and availability. The risk is cascading request failures and latency amplification in any synchronous path that renders diagrams. Queuing the render behind your own job, with caching of previously generated images, is the safer default for user-facing pages.
Is jawira/plantuml-client actively maintained?
Yes, recent activity includes the v1.1.1 maintenance release, refreshed CI on GitHub Actions, an automated dependency-update bot, and enforced coding standards via php-cs-fixer. The repository is public at github.com/jawira/plantuml-client, so the dependency tree, code, and issue history are inspectable. The main residual risk is that it is a single-maintainer project with a bus factor of one.
How do I upgrade from v1.1.0 to v1.1.1, and what are the alternatives?
The v1.1.0 to v1.1.1 change is maintenance-only, covering CI, formatting, and documentation, with no breaking changes or deprecations to the API surface, so upgrading is effectively a no-op on a routine dependency bump. Greenfield projects should adopt v1.1.1 directly rather than pinning to v1.1.0. Alternatives from the same author include jawira/plantuml for a bundled executable and plantuml.jar, jawira/plantuml-to-image as a local wrapper, and jawira/plantuml-encoding if you only need URL encoding for server requests.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel