An open API service indexing awesome lists of open source software.

https://github.com/theeightbot/mauimaid

Mermaid Diagrams for .NET Platforms
https://github.com/theeightbot/mauimaid

Last synced: 17 days ago
JSON representation

Mermaid Diagrams for .NET Platforms

Awesome Lists containing this project

README

          

# MermaidNet

A cross-platform .NET library for rendering [Mermaid](https://mermaid.js.org/) 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]
```

## Packages

| 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)* |

## Supported Diagram Types

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)

## Quick Start — MAUI

```xml

```

```csharp
// MauiProgram.cs
builder.UseMermaidNet();
```

```xml

```

## Quick Start — Blazor

```xml

```

```csharp
// Program.cs
builder.Services.AddMermaidNet();
```

```razor

```

## Architecture

```
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)
```

## License

MIT — see [LICENSE](LICENSE)