Maude.Native
0.3.0
dotnet add package Maude.Native --version 0.3.0
NuGet\Install-Package Maude.Native -Version 0.3.0
<PackageReference Include="Maude.Native" Version="0.3.0" />
<PackageVersion Include="Maude.Native" Version="0.3.0" />
<PackageReference Include="Maude.Native" />
paket add Maude.Native --version 0.3.0
#r "nuget: Maude.Native, 0.3.0"
#:package Maude.Native@0.3.0
#addin nuget:?package=Maude.Native&version=0.3.0
#tool nuget:?package=Maude.Native&version=0.3.0
Maude.Native — in-app performance tracker for .NET iOS, Android, and Mac Catalyst
Maude overlays live memory, FPS, and annotated events inside your app.
Maude is a powerful, lightweight tool to help you in your debugging battles.
Disclaimer ⚠️
Best effort has been made for performance and correctness, but Maude continuously snapshots memory and stores recent samples in-memory; expect a small observer effect.
Please treat Maude’s numbers as guidance, a heuristic.
Always use the native tools and platform-specific profilers (Xcode Instruments, Android Studio profiler) or dotnet trace for authoritative measurements.
Quickstart
Pick the host style that suits your app.
.NET for iOS, Android, and Mac Catalyst
- Provide a presentation window (Android requires an
Activity):
// Android Activity
var options = MaudeOptions.CreateBuilder()
.WithPresentationWindowProvider(() => this) // required on Android
.Build();
MaudeRuntime.InitializeAndActivate(options);
On iOS or Mac Catalyst, the default window provider is used:
MaudeRuntime.InitializeAndActivate();
- Present Maude in your UI:
MaudeRuntime.PresentSheet(); // Slide-in sheet
MaudeRuntime.PresentOverlay(); // Window overlay
MaudeRuntime.DismissOverlay();
Documentation
Looking for builder options, event recording, FPS sampling, or platform-specific tips? Read the full guide at https://github.com/matthewrdev/maude/blob/main/docs.md.
What does Maude capture?
Android
| Metric | Description + Documentation |
|---|---|
| Resident Set Size (RSS) | Physical RAM currently mapped into the process (Java + native + runtime), excluding swapped pages. Android Memory Overview • /proc reference |
| Native Heap | Memory allocated through native allocators (malloc, new) used by the ART runtime and native libraries. Debug.getNativeHeapAllocatedSize |
| CLR (Managed Heap) | Managed heap consumed by the .NET/Mono runtime (GC generations, LOH, objects, metadata). .NET GC Fundamentals |
iOS
| Metric | Description + Documentation |
|---|---|
| Physical Footprint (Jetsam Footprint) | Total physical RAM attributed to the process by the kernel — the metric Jetsam uses to terminate apps. task_vm_info_data_t • WWDC Memory Deep Dive |
| CLR (Managed Heap) | Managed memory used by the .NET/Mono runtime on iOS (AOT GC heap + metadata). .NET GC Fundamentals |
Limitations and Known Issues
Only Supported on .NET 9 and higher
Maude is explicitly built for .NET 9+ to leverage Span<T> optimisations; earlier target frameworks are unsupported.
More
Source, issues, and release notes live at https://github.com/matthewrdev/maude.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0-android35.0 is compatible. net9.0-ios18.0 is compatible. net9.0-maccatalyst18.0 is compatible. net10.0-android was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. |
-
net9.0-android35.0
- SkiaSharp (>= 3.119.1)
- SkiaSharp.Views (>= 3.119.1)
- Xamarin.AndroidX.RecyclerView (>= 1.3.2.8)
- Xamarin.Google.Android.Material (>= 1.12.0)
-
net9.0-ios18.0
- SkiaSharp (>= 3.119.1)
- SkiaSharp.Views (>= 3.119.1)
-
net9.0-maccatalyst18.0
- SkiaSharp (>= 3.119.1)
- SkiaSharp.Views (>= 3.119.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Maude.Native:
| Package | Downloads |
|---|---|
|
Maude
Monitor and visualise your .NET MAUIs apps memory usage and FPS at runtime. Supports Android, iOS and MacCatalyst. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.3.0 | 40 | 2/9/2026 |