Pysar · MIT licensed · .NET 10

Describe your report once. Render it everywhere.

Pysar is a report engine for .NET: XAML markup or a fluent C# builder in, a vector PDF, bitmap pages, or a zoomable in-app viewer out — identical on Windows, macOS, Linux, Android, iOS and the browser.

Program.cs
var report = ReportBuilder.Create("Hello report")
    .WithPageFormat(new PageFormat { Margin = new Thickness(30) })
    .WithDetail(detail => detail.AddElement(new Text { Content = "Hello from Pysar" }))
    .Build();

await new SkiaReportRenderer().SavePdfAsync(report, "hello.pdf");

Built for real, paginated documents

Bands, bindings and pagination that behave like a document engine — not a UI framework stretched to fit.

Two authoring styles

.rxaml markup for fixed-shape reports, the fluent builder for structure computed at runtime — same object model, can be mixed.

Real pagination

Detail rows slice across pages, headers repeat, page bands re-resolve per page, and PageNumber/PageCount reach your bindings.

Vector PDF output

Text stays selectable and sharp at any zoom — nothing is rasterised — plus bitmap page rendering at any scale.

Tiled viewer

One viewer control shared across every UI framework — only the visible region rasterises, so memory follows the viewport.

Compile-time validation

The source generator checks {Binding} paths and DataTrigger.Binding against x:DataType, for reports loaded at runtime too.

Data binding & triggers

{Binding}, string formats, value converters and DataTrigger for conditional formatting — resolved once, at build time.

Name at most three packages

Pysar always, Pysar.Xaml for .rxaml markup, and one platform package for your UI framework.

PackageResponsibility
PysarReports, bands, layouts, repeaters, styles, triggers, data binding, and the SkiaSharp measurement, pagination, rendering and PDF engine
Pysar.XamlDeclarative report markup: the runtime loader and the code-behind source generator
Pysar.ViewerFramework-neutral viewer logic: page geometry, zoom, tile planning and the tile cache (arrives transitively)
Pysar.Maui.NET MAUI integration: app-package assets, font registration, PDF export and sharing
Pysar.AvaloniaAvalonia integration: avares:// assets, font registration and the report view
Pysar.BlazorBlazor integration: the report viewer component, printing through the browser
Pysar.WpfWPF integration (Windows only): pack/manifest assets, font registration and the report view

The same ReportView, everywhere

Every platform package exposes the same properties — Zoom, EffectiveZoom, PageSpacing — so the integration reads the same across your apps.

.NET MAUI

Android, iOS & Mac Catalyst

Avalonia

Windows, macOS & Linux

WPF

Windows only

Blazor

Runs in the browser

Editor tooling for Pysar

.rxaml syntax highlighting for Rider and VS Code is free, forever. A full visual report designer, Pysar.Design, is in development and will likely be a paid product once it ships.