RaiDiagram 4.5.15
dotnet add package RaiDiagram --version 4.5.15
NuGet\Install-Package RaiDiagram -Version 4.5.15
<PackageReference Include="RaiDiagram" Version="4.5.15" />
<PackageVersion Include="RaiDiagram" Version="4.5.15" />
<PackageReference Include="RaiDiagram" />
paket add RaiDiagram --version 4.5.15
#r "nuget: RaiDiagram, 4.5.15"
#:package RaiDiagram@4.5.15
#addin nuget:?package=RaiDiagram&version=4.5.15
#tool nuget:?package=RaiDiagram&version=4.5.15
RaiDiagram
4.5.15
Edge stereotypes are first-class in .raid, PlantUML import and export, and
hydratable SVG.
Latest release notes: RaiDiagram 4.5.15 release notes.
Previous Versions
For release notes and changelogs of earlier releases, see the RaiDiagram 4.x Release Notes.
Installation
.NET CLI
dotnet add package RaiDiagram --version 4.5.15
PackageReference
<PackageReference Include="RaiDiagram" Version="4.5.15" />
RaiDiagram is RAIkeep's domain-neutral diagram package. Its .raid files are agent-readable JSON5 manifests that keep semantic projection, model references, and presentation intent separate from application domain models.
Edge stereotypes (CR064)
DiagramRelationship.Stereotype stores an edge stereotype separately from its
human-readable Label. .raid is the authoritative manifest; the PlantUML
adapter emits <<stereotype>> and places a label on the next visual line when
both are present. The deterministic SVG shows the stereotype and exposes it as
aim-stereotype on hydratable edges. Legacy manifests without the property
remain valid.
PlantUML import reads edge stereotypes into this property without changing
their spelling. An unmanaged raid import --puml ... --out ... requires
--domain <Domain> so the imported vocabulary has an explicit context.
Managed imports use their --tenant as the Domain.
Object and deployment import (CR052)
@startuml Orders
object "Order42 : Order" as order {
Number = 42
Details = { 'Currency': 'EUR', 'Total': '25.00' }
}
actor "Customer" as customer
customer --> order : places
@enduml
raid import --puml Orders.puml --out ./artifacts --domain Examples --name Orders --name-ext OD
ObjectProperties preserves ordered text slot values in schema 1.1 and renders
visible SVG compartments. Existing schema 1.0 remains readable. Deployment
PlantUML supports node, cloud, component, database, artifact, folder,
and frame, with resident containment and protocol labels. Use _VD via
--name-ext VD or DistributionDiagramBuilder for deployment models.
Parsing errors report source:line:column and codes PUML001–PUML005 before writes. PUML101 warns about retained presentation hints not applied by the canvas renderer. RAID201 identifies unsupported rendering. Unsupported constructs, includes, and macros are rejected instead of silently dropping content or inventing classes.
PlantUML is the active interchange format. The retained, frozen deployment-only
Poseidon/OTW importer is available as raid import-xmi file.xmi --list-diagrams
and raid import-xmi file.xmi --diagram <id-or-name> --out ./artifacts --name Servers.
import-otw is an alias. It preserves drawing bounds and authored paths, without
claiming complete legacy visual fidelity or support for other XMI diagram families.
End-to-end example
The checked-in ScheduleRehearsal example
contains an authoritative JSON5 .raid manifest, its deterministic generated
PlantUML source, its resolved PlantUML config, and the SVG rendered by the real
PlantUML CLI. The generated .puml contains diagram declarations only; theme,
handwritten mode, and style are injected with PlantUML -config. The SVG embeds
the manifest identity plus semantic, config, and render hashes. Regression tests
load the .raid directly, verify all four artifacts remain synchronized, and
execute the same production rendering path used by consumers.
The resolved config selects PlantUML's built-in cerulean theme, enables
handwritten rendering with !option handwritten true, and declares
Chalkduster, Comic Sans MS as an ordered SVG font-family fallback. No theme,
style, include, or deprecated handwritten skinparam is emitted into the
generated diagram source.
PumlStyleCatalog combines common styles with the style files registered for
the .raid DiagramKind. DiagramStyleProvider resolves those layers into one
immutable config snapshot before rendering. PumlStyleFile, PumlThemeFile,
and PumlConfigFile use the existing ImageTree subscriber and ItemTreePath
conventions, just like generated source, config, SVG, PNG, and WebP artifacts.
Subscriber is a storage-routing segment, not an authenticated identity.
The checked-in
raikeep-sketch theme
remains a portable Git source example; deployments may also materialize it in a
local subscriber ImageTree. RaiDiagram never resolves a remote theme URL or
infers a parent subscriber hierarchy.
Each production render materializes one subscriber-co-located ImageTree artifact
set: the authoritative .raid snapshot, clean .puml, resolved
_config.puml, and rendered .svg. The config is a .puml file using
NameExt = "config"; for example ScheduleRehearsal_config.puml. SVG uses the
same subscriber and path convention as PNG and WebP; only the file format
differs.
Style fallback locations are always supplied explicitly in least-specific to most-specific order. RaiDiagram performs no identity management, authorization, parent-directory walking, or application/subscription/tenant inference.
Testing with PlantUML
The compiler, manifest, style, provenance, and command-contract tests do not
require external diagramming tools. Four PlantUMLIntegration tests additionally
exercise the real renderer. They run when plantuml -version confirms a complete
local installation (including Graphviz for graph-based diagrams) and are reported
as skipped when that environment is unavailable. Set
RAIDIAGRAM_REQUIRE_REAL_PLANTUML=1 to turn an unavailable renderer into a test
failure, for example in a dedicated integration environment.
See the approved CR009 package design, the package-boundary ADR, the subscriber artifact and style request, the subscriber placement and lookup ADR, and the foldable API reference.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Json5Core (>= 1.0.12)
- Newtonsoft.Json (>= 13.0.4)
- OsLibCore (>= 4.5.15)
- RaiImage (>= 4.5.15)
- RaiUtils (>= 4.5.15)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.5.15 | 0 | 10/30/2026 |
| 4.5.14 | 108 | 10/26/2026 |
| 4.5.13 | 114 | 10/20/2026 |
| 4.5.12 | 236 | 10/19/2026 |
| 4.5.11 | 101 | 10/19/2026 |
| 4.5.10 | 110 | 10/12/2026 |
| 4.5.9 | 110 | 10/12/2026 |
| 4.5.8 | 105 | 10/10/2026 |
| 4.5.7 | 100 | 10/10/2026 |
| 4.5.6 | 107 | 10/9/2026 |
| 4.5.5 | 113 | 10/7/2026 |
| 4.5.4 | 114 | 10/3/2026 |
| 4.5.3 | 120 | 10/3/2026 |
| 4.5.2 | 116 | 10/3/2026 |
| 4.5.0 | 111 | 10/3/2026 |
| 4.4.6 | 122 | 10/2/2026 |
| 4.4.5 | 113 | 9/30/2026 |
| 4.4.4 | 122 | 9/29/2026 |
| 4.4.3 | 117 | 9/29/2026 |
| 4.4.2 | 117 | 9/27/2026 |
Coordinated dependency alignment; diagram semantics and rendering behavior are unchanged.