Skip to main content

A package for generating architecture diagrams using PlantUML, diagrams, and Mermaid.

Project description

A Docker container for generating system design diagrams using PlantUML and the diagrams library.

https://img.shields.io/badge/Docker-Ready-blue.svg https://img.shields.io/badge/license-MIT-green.svg https://github.com/aydabd/sys-design-diagram/actions/workflows/ci.yml/badge.svg

Overview

System Design Diagram is a Docker container that provides tools to generate system design diagrams from PlantUML files, using the diagrams library, and from Mermaid files. This container is designed for use in CI/CD pipelines and other automation workflows.

Features

  • Generate diagrams from PlantUML files

  • Generate diagrams using the diagrams library

  • Generate diagrams from Mermaid files

  • Process all diagrams in a given directory

  • Asynchronous processing for better performance

Installation

To use the Docker container, pull it from the GitHub Container Registry or docker hub:

docker pull ghcr.io/aydabd/sys-design-diagram:latest
docker pull aydabd/sys-design-diagram:latest

Make sure you have Docker installed and running on your system.

Usage

The Docker container provides several commands to generate diagrams:

docker run --rm --it ghcr.io/aydabd/sys-design-diagram:latest [OPTIONS] COMMAND [ARGS]...

Options

  • -v, –verbose: Enable verbose mode.

  • –version: Show the version and exit.

  • –help: Show the help message and exit.

Commands

  • diagrams: Generate diagrams using the diagrams library.

  • plantuml: Generate diagrams from PlantUML files.

  • mermaid: Generate diagrams from Mermaid files.

  • process-all: Generate diagrams using PlantUML, diagrams library, and Mermaid.

Examples

There is a compose.yaml file which can be used to generate diagrams from a tests-data directory. To use the compose.yaml file, run the following command:

docker-compose up --build

Development

To contribute to the development of this project, follow these steps:

  1. Clone the repository

  2. for linux users, install mamba-githook [mamba-githook](https://github.com/aydabd/mamba-githook?tab=readme-ov-file#installation)

  3. Initiate mamba-githook, check the installation link above

  4. Create a new branch (e.g. git checkout -b feature)

  5. Make your changes

  6. Commit your changes (e.g. git commit -am ‘Add new feature’)

  7. Push to the branch (e.g. git push origin feature)

  8. Create a new Pull Request

Testing

Pre-commit hooks are used to run tests before each commit. To run the tests manually, use the following command:

# Create a virtual environment
python -m venv .venv
pip install hatch
# Run the tests
hatch run test:all
# For formatting
hatch fmt

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contributing

Contributions are welcome! Please open an issue or submit a pull request on GitHub.

Contact

For any questions or suggestions, please open an issue on the GitHub repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sys_design_diagram-1.1.0.tar.gz (24.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sys_design_diagram-1.1.0-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file sys_design_diagram-1.1.0.tar.gz.

File metadata

  • Download URL: sys_design_diagram-1.1.0.tar.gz
  • Upload date:
  • Size: 24.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sys_design_diagram-1.1.0.tar.gz
Algorithm Hash digest
SHA256 ecd39f6449c69e364215822022d6d0420c1825e0c206be74ee2921a5ffa2413d
MD5 fb030c064cc2d44edba70180b95fa123
BLAKE2b-256 5a0bcacc18708933b2b97883a5181c108b6c294be139dae345427e7dcf37f3ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for sys_design_diagram-1.1.0.tar.gz:

Publisher: pypi-release.yml on aydabd/sys-design-diagram

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sys_design_diagram-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sys_design_diagram-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3cb7ea5809550b4f477af2b50e26a10f48a4a7f22b7ac3e15ca4f53db5ab4739
MD5 952141851531b39a668343c1b9b97974
BLAKE2b-256 3a321e7e0285c10409d3ccfc5201cc930d7f62e6723a8759227ead5996fa9ae3

See more details on using hashes here.

Provenance

The following attestation bundles were made for sys_design_diagram-1.1.0-py3-none-any.whl:

Publisher: pypi-release.yml on aydabd/sys-design-diagram

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page