Skip to main content

Microkernel-based Python toolkit for system diagrams, SVG rendering, and plugin-driven exports

Project description

SILCO (System Illustration & Layout Composer)

Silco is a Python-first diagram toolkit built around a small microkernel. The core owns the document model, layout contracts, and plugin registry; renderers, styles, and presenters plug into that kernel. The default SVG renderer now uses the diagrams package with C4-flavored Graphviz output so the generated diagrams read like real system design documentation instead of custom-drawn boxes.

from silco import diagram

d = (
    diagram("Checkout")
    .node("user", "User", kind="actor")
    .node("api", "API", kind="service", group="app")
    .node("db", "Orders DB", kind="database", group="data")
    .connect("user", "api", "HTTPS")
    .connect("api", "db", "SQL")
)

svg = d.to_svg(style="modern")

Runtime requirement: Graphviz must be installed and dot must be on PATH.

Built-ins are registered through the kernel on import. Styles, layouts, and optional renderers stay discoverable:

from silco import kernel

kernel.names("layouts")      # ("dag", "grid")
kernel.names("renderers")    # ("svg", "mermaid", ...)
kernel.names("styles")       # ("modern", "uml")
kernel.discover()            # optional plugin discovery

Render the same diagram in different ways:

svg = d.to_svg(style="uml", layout="dag", title=True)
mermaid = d.to_mermaid()

In IPython/Jupyter:

%load_ext silco.plugins.ipython
d

Export as PDF with the optional CairoSVG-backed renderer plugin:

pip install "silco[pdf]"
d.save_pdf("checkout.pdf")
pdf_bytes = d.to_pdf()

Plugin categories:

kernel.categories()
kernel.names("renderers")
kernel.names("presenters")

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

silco-0.1.0.tar.gz (25.2 kB view details)

Uploaded Source

Built Distribution

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

silco-0.1.0-py3-none-any.whl (33.2 kB view details)

Uploaded Python 3

File details

Details for the file silco-0.1.0.tar.gz.

File metadata

  • Download URL: silco-0.1.0.tar.gz
  • Upload date:
  • Size: 25.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for silco-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d98ffef950c3155d17e39499299529fb0276a5cefe5fdf257f4b249d209f6ad8
MD5 5a337f3c03c2707d3298a1eef0d77422
BLAKE2b-256 1df59009d2bbedbda055293f25b3a889b012b69ed043f5e32e778636d415228f

See more details on using hashes here.

Provenance

The following attestation bundles were made for silco-0.1.0.tar.gz:

Publisher: workflow.yaml on maniebra/silco

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

File details

Details for the file silco-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: silco-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 33.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for silco-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 60a8e6f73fefc195f1ede448c7eb774d4fe99c5bbb5fa84b3f76be1ba343afb7
MD5 99a1ff2eb750b1d85e527e3152c6bc63
BLAKE2b-256 9e137adaba67f1956db958a9cb2cfa72bbc746ab9f3f97c5d6940ecc76ef3492

See more details on using hashes here.

Provenance

The following attestation bundles were made for silco-0.1.0-py3-none-any.whl:

Publisher: workflow.yaml on maniebra/silco

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