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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d98ffef950c3155d17e39499299529fb0276a5cefe5fdf257f4b249d209f6ad8
|
|
| MD5 |
5a337f3c03c2707d3298a1eef0d77422
|
|
| BLAKE2b-256 |
1df59009d2bbedbda055293f25b3a889b012b69ed043f5e32e778636d415228f
|
Provenance
The following attestation bundles were made for silco-0.1.0.tar.gz:
Publisher:
workflow.yaml on maniebra/silco
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
silco-0.1.0.tar.gz -
Subject digest:
d98ffef950c3155d17e39499299529fb0276a5cefe5fdf257f4b249d209f6ad8 - Sigstore transparency entry: 1819600533
- Sigstore integration time:
-
Permalink:
maniebra/silco@59344a7adbf2288cde08ebbacc6eb54c14a0a80a -
Branch / Tag:
refs/tags/v0.9.0 - Owner: https://github.com/maniebra
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yaml@59344a7adbf2288cde08ebbacc6eb54c14a0a80a -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60a8e6f73fefc195f1ede448c7eb774d4fe99c5bbb5fa84b3f76be1ba343afb7
|
|
| MD5 |
99a1ff2eb750b1d85e527e3152c6bc63
|
|
| BLAKE2b-256 |
9e137adaba67f1956db958a9cb2cfa72bbc746ab9f3f97c5d6940ecc76ef3492
|
Provenance
The following attestation bundles were made for silco-0.1.0-py3-none-any.whl:
Publisher:
workflow.yaml on maniebra/silco
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
silco-0.1.0-py3-none-any.whl -
Subject digest:
60a8e6f73fefc195f1ede448c7eb774d4fe99c5bbb5fa84b3f76be1ba343afb7 - Sigstore transparency entry: 1819600562
- Sigstore integration time:
-
Permalink:
maniebra/silco@59344a7adbf2288cde08ebbacc6eb54c14a0a80a -
Branch / Tag:
refs/tags/v0.9.0 - Owner: https://github.com/maniebra
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yaml@59344a7adbf2288cde08ebbacc6eb54c14a0a80a -
Trigger Event:
release
-
Statement type: