vars:{ d2-config: { layout-engine: elk } } classes: { container: { icon.near: top-center label.near: outside-top-left style.stroke-width: 1 } icon: { label.near: outside-top-left style.bold: false style.stroke-width: 1 } libgit2: { style.stroke: orangered style.fill: papayawhip icon: https://icons.terrastruct.com/dev%2Fgit.svg } rust: { style.stroke: black style.fill: whitesmoke icon: https://icons.terrastruct.com/dev%2Frust.svg } git2: { style.stroke: black style.fill: whitesmoke icon: https://icons.terrastruct.com/dev%2Frust.svg } git-odb: { style.stroke: orangered style.fill: peachpuff icon: https://icons.terrastruct.com/essentials%2F117-database.svg } kademlia: { style.fill: thistle style.stroke: orchid } files: { style.stroke: darkkhaki style.fill: beige icon: https://icons.terrastruct.com/essentials%2F257-file.svg } tier: { style.italic: true style.bold: false style.stroke-width: 1 label.near: outside-top-center grid-rows: 1 vertical-gap: 15 horizontal-gap: 20 } stack: { horizontal-gap: 25 vertical-gap: 15 style.bold: true style.stroke-width: 2 } } Server: { grid-rows: 3 class: [stack] label: "" presentation: - Presentation - { class: [container; tier] Client: CLI Client { grid-columns: 1 class: stack clap: { class: [rust; icon] } git2: { class: [git2; container] libgit2: { class: [libgit2; icon] } } } browser: Web Browser { class: [icon] icon: https://icons.terrastruct.com/dev%2Ffirefox.svg } } logic: - Business Logic - { class: [container; tier] axum: { class: [rust; container] tower-cgi: { class: [rust; container] git-http-backend: { class: [libgit2; icon] } } markdown-it: { class: [rust; icon] } } libp2p: { class: [rust; container] kademlia: Kademlia DHT { class: [kademlia] } } } storage: - Data - { class: [container; tier] git2: { class: [git2; container] libgit2: { class: [libgit2; container] git-odb: git ODB { class: [git-odb; icon] } } } redb: { class: [rust; container] dbfile: DB File { class: [files; icon] } } } }