# MewUI
**Repository Path**: nygula/MewUI
## Basic Information
- **Project Name**: MewUI
- **Description**: A cross-platform and lightweight, code-first .NET GUI framework aimed at NativeAOT.
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-08-14
- **Last Updated**: 2026-08-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[](README.ko.md)







[](https://www.nuget.org/packages/Aprillz.MewUI/)
[](https://www.nuget.org/packages/Aprillz.MewUI/)
---
🎗️
In loving memory of my beloved cat and companion, April. Forever in my heart.
`2012.04.15 – 2026.06.20`
사랑하는 사월아, 내 곁에 와줘서 고마워. 너와 함께한 모든 순간이 행복했단다.
꼭 다시 만나자. 내 보물 송사월.
My beloved April, thank you for coming into my life, and I was always so happy.
We will surely meet again. My treasure, April.
---
**😺 MewUI** is a cross-platform, lightweight, code-first .NET GUI framework for building and shipping NativeAOT/Trim-friendly desktop apps without requiring a separate .NET runtime installation.
> [!NOTE]
> The official pronunciation of **MewUI** is **/mjuː aɪ/** (“myoo-eye”).
### Project Status: Active Development
> [!IMPORTANT]
> MewUI is an actively developed framework with published NuGet packages, cross-platform hosts, multiple rendering backends, and optional extension packages.
>
> The public API surface is still being stabilized, so breaking changes can happen between minor releases. For production apps, pin package versions and review release notes before upgrading.
### 🤖 AI-Assisted Development
> [!NOTE]
> This project was developed using an **AI prompt–driven workflow**.
> Design and implementation were performed through **iterative prompting without direct manual code edits**,
> with each step reviewed and refined by the developer.
---
## 🚀 Try It Out
**No clone. No download. No project setup.**
You can **run MewUI immediately** with a single command on **Windows**, **Linux** or **macOS**. (.NET 10 SDK required)
> [!TIP]
> This is the **quickest way to try MewUI** without going through the usual repository and project setup steps.
```bash
curl -sL https://raw.githubusercontent.com/aprillz/MewUI/refs/heads/main/samples/FBASample/fba_gallery.cs -o - | dotnet run -
```
> [!WARNING]
> This command downloads and executes code directly from GitHub.
### Video
https://github.com/user-attachments/assets/fc2d6ad8-3317-4784-a6e5-a00c68e9ed3b
### Screenshots
| Light | Dark |
|---|---|
|  |  |
---
## ✨ Highlights
- 📦 **NativeAOT + trimming** first
- 🪶 **Lightweight** by design (small EXE, low memory footprint, fast first frame)
- 🧩 Fluent **C# markup** (no XAML)
## 🚀 Quickstart
- NuGet: https://www.nuget.org/packages/Aprillz.MewUI/
- `Aprillz.MewUI` is a **metapackage** that bundles Core, all platform hosts, and all rendering backends.
- Platform-specific packages are also available: `Aprillz.MewUI.Windows`, `.Linux`, `.MacOS`
- Install: `dotnet add package Aprillz.MewUI`
- See: [Installation & Packages](docs/Installation.md)
- File-Based App (FBA), VS Code friendly (.NET 10+)
- See: [samples/FBASample/fba_calculator.cs](samples/FBASample/fba_calculator.cs)
- Minimal header (without AOT/Trim options):
```csharp
#:sdk Microsoft.NET.Sdk
#:property OutputType=Exe
#:property TargetFramework=net10.0
#:package Aprillz.MewUI@0.19.1
// ...
```
- Run: `dotnet run your_app.cs`
---
## 🧪 C# Markup at a Glance
- Sample source: https://github.com/aprillz/MewUI/blob/main/samples/MewUI.Sample/Program.cs
```csharp
var window = new Window()
.Title("Hello MewUI")
.Resizable(520, 360)
.Padding(12)
.Content(
new StackPanel()
.Spacing(8)
.Children(
new Label()
.Text("Hello, Aprillz.MewUI")
.FontSize(18)
.Bold(),
new Button()
.Content("Exit")
.OnClick(Application.Shutdown)
)
);
Application.Run(window);
```
---
## 🎯 Concept
MewUI is a code-first GUI framework with a small, explicit core and platform-specific hosts/backends.
- **NativeAOT + trimming friendliness**
- **Small footprint, fast startup, low memory usage**
- **Fluent C# markup** for building UI trees (no XAML)
- **AOT-friendly explicit binding** (including nested paths)
- **Thin core, optional extensions** for larger features
### Non-goals (by design):
- Full XAML/WPF compatibility
- A drop-in replacement for WPF or Avalonia with identical APIs and behavior
- Designer-first development workflows
- Reflection-based path binding
- An exhaustive, all-in-one control catalog
The core covers common desktop UI patterns; specialized features such as charts and docking ship as extension packages.
---
## ✂️ NativeAOT / Trim
- The library aims to be trimming-safe by default (explicit code paths, no reflection-based binding).
- Windows interop uses source-generated P/Invoke (`LibraryImport`) for NativeAOT compatibility.
- On Linux, building with NativeAOT requires the AOT workload in addition to the regular .NET SDK (e.g. install `dotnet-sdk-aot-10.0`).
- If you introduce new interop or dynamic features, verify with the trimmed publish profile above.
NativeAOT executable size depends on the platform host, rendering backend, resources, and publish options. The table below measures the **main executable only**; ZIP is the same executable compressed with the default measurement settings. Sizes use binary units: **1 MB = 1024 KB**.
For reproducible size probes, regression budgets, and NativeAOT map analysis, see the [NativeAOT size tools](tools/aot-size/README.md).


[Measurement data](tools/aot-size/release-sizes.json)
The Gallery is a full-featured showcase sample. Use the Hello World rows as the minimum deployment-size baseline.
---
## 🔗 State & Binding (AOT-friendly)
Bindings are explicit and delegate-based, with no reflection. Three kinds of source are supported: `ObservableValue