A cross-platform .NET library for rendering Mermaid diagrams natively — no JavaScript, no WebView.
flowchart LR
A[MermaidNet.Core] --> B[MermaidNet.Rendering.Maui]
A --> C[MermaidNet.Rendering.Blazor]
B --> D[MAUI App - SkiaSharp]
C --> E[Blazor App - SVG]
| Package | Description | NuGet |
|---|---|---|
MermaidNet.Core |
Platform-agnostic parser, layout engine, and rendering contracts | (coming soon) |
MermaidNet.Rendering.Maui |
SkiaSharp-based renderer for .NET MAUI | (coming soon) |
MermaidNet.Rendering.Blazor |
SVG-based renderer for Blazor (Server & WASM) | (coming soon) |
All 23+ Mermaid diagram types are supported:
- Flowchart / Graph
- Sequence Diagram
- Class Diagram
- State Diagram (v1 & v2)
- Entity Relationship Diagram
- User Journey
- Gantt Chart
- Pie Chart
- Quadrant Chart
- Requirement Diagram
- GitGraph
- C4 Diagrams (Context, Container, Component, Dynamic, Deployment)
- Mindmap
- Timeline
- ZenUML
- Sankey
- XY Chart
- Block Diagram
- Packet Diagram
- Kanban
- Architecture Diagram (beta)
- Radar Chart (beta)
- Treemap (beta)
<!-- NuGet -->
<PackageReference Include="MermaidNet.Rendering.Maui" Version="*" />// MauiProgram.cs
builder.UseMermaidNet();<!-- XAML -->
<mermaid:MermaidSKView Source="flowchart TD
A[Start] --> B[End]" /><!-- NuGet -->
<PackageReference Include="MermaidNet.Rendering.Blazor" Version="*" />// Program.cs
builder.Services.AddMermaidNet();<!-- Component -->
<MermaidDiagram Source="@diagram" />MermaidNet.Core (netstandard2.0; net8.0)
├── Parsing Lexer + Pidgin parser combinators for all diagram types
├── Models AST/model types for all diagram types
├── Layout Platform-agnostic layout engines (Sugiyama, radial, etc.)
└── Rendering IRenderContext abstraction + IDiagramRenderer implementations
MermaidNet.Rendering.Maui (net8.0-android/ios/maccatalyst/windows)
├── SkiaRenderContext IRenderContext → SkiaSharp SKCanvas
├── MermaidSKView SKCanvasView subclass with pan/zoom/tap
└── MermaidGLView SKGLView variant for GPU rendering
MermaidNet.Rendering.Blazor (net8.0, Razor Class Library)
├── SvgRenderContext IRenderContext → SVG string builder
└── MermaidDiagram Blazor component with @((MarkupString)svg)
MIT — see LICENSE