Releases: oxur/dendryform
dendryform v0.1.0 Release Notes
Released: 2026-02-20
Overview
dendryform v0.1.0 is the first public release of a declarative software architecture diagram tool written in Rust. It takes a simple YAML file as input and renders beautiful, dark-themed architecture diagrams as HTML, SVG, PNG, or ASCII art.
What Is dendryform?
dendryform is a diagram-as-code tool for software architects. You describe your system in a human-readable YAML schema — tiers, nodes, connectors, edges, containers, and a legend — and dendryform renders it into a polished visual diagram. The design is opinionated: dark theme by default, structured grid layouts, and a consistent visual language across all output formats.
Crate Structure
The workspace ships as 10 crates on crates.io:
| Crate | Role |
|---|---|
dendryform-core |
Schema types, theme system, error handling |
dendryform-parse |
YAML and JSON parser with custom serde deserializers |
dendryform-layout |
Grid positioning, container nesting, coordinate engine |
dendryform-html |
Self-contained HTML renderer with embedded CSS |
dendryform-svg |
SVG renderer with absolute pixel coordinates |
dendryform-png |
PNG renderer via resvg rasterization |
dendryform-ascii |
ASCII art renderer |
dendryform-export |
Lossy exporters: Structurizr DSL, Mermaid, JSON |
dendryform-cli |
dendryform binary — render, validate, init, themes |
dendryform |
Re-export crate for library consumers |
Feature Highlights
YAML Schema
Diagrams are declared as an ordered sequence of layers. Each layer is one of:
tier— a horizontal band of nodes, optionally with grid layout and container nestingconnector— a visual divider between tiers (lineordotsstyle, optional label)flow_labels— a row of directional flow labels between tiers
Nodes support kind (person, system, component, infrastructure), color, icon (unicode), title, description, and tech stack tags.
Edges declare semantic relationships between nodes (uses, reads, writes, contains) and are used for export to Structurizr DSL and Mermaid.
A legend section provides a color-keyed reference.
Renderers
- HTML: Fully self-contained output with embedded CSS. Dark theme. No external assets required.
- SVG: Pixel-precise coordinates computed by the layout engine. Includes
<tspan>-based text wrapping for long descriptions. - PNG: Rasterized from SVG via resvg. Fonts bundled by default (JetBrains Mono). High-fidelity output matching the SVG.
- ASCII: Lightweight text rendering for terminals and plain-text environments.
CLI
dendryform render -i diagram.yaml -o diagram.html
dendryform render -i diagram.yaml -o diagram.svg
dendryform render -i diagram.yaml -o diagram.png
dendryform render -i diagram.yaml -o diagram.txt
dendryform validate -i diagram.yaml
dendryform init
dendryform themes
Output format is inferred automatically from the -o file extension. The init command scaffolds a starter diagram.yaml. The themes command lists available themes.
Container Nesting
Tiers can contain named containers with solid or dashed borders and colored labels. Containers can nest sub-tiers, enabling complex diagrams like the bundled Taproot example (a 4-tier MCP server diagram with nested knowledge engine container).
Export
dendryform-export provides lossy export to:
- Structurizr DSL — for use with the Structurizr toolchain
- Mermaid — for embedding in Markdown documents and GitHub wikis
- JSON — machine-readable representation of the diagram model
Exports are described as "lossy" because visual positioning and connector styling are not representable in these target formats.
Examples
Three worked examples ship with the repository:
examples/taproot/— Full production architecture diagram for a BigQuery analytics MCP server. 5 tiers, container nesting, 20 MCP tool nodes, 18 semantic edges.examples/ai-kasu/— AI-powered document processing pipeline.examples/oxur-lisp/— Architecture for a Lisp implementation project.
Quality
- Test coverage: 95.23% regions / 95.41% lines / 98.30% functions (llvm-cov)
- Linting: zero clippy warnings
- docs.rs: All crates are docs.rs-ready with keywords, categories, and feature metadata
Known Limitations
- Export formats (Structurizr, Mermaid) are lossy — visual layout information is not preserved.
- The ASCII renderer is functional but does not yet support container nesting rendering.
- Theme support is implemented but only the built-in
darktheme ships in v0.1.0.