NativeMessageBox gives you two integration surfaces:
include/native_message_box.hUse the managed API when you are already shipping a .NET or Avalonia application. Use the C ABI when you need runtime-level integration from C, C++, Rust, Swift, Go, or another FFI consumer.
By the end of Getting Started, you will have:
| Surface | Best for | Main entry points |
|---|---|---|
| .NET wrapper | Avalonia, desktop, mobile, browser, and general .NET applications | NativeMessageBoxClient, MessageBoxOptions, MessageBoxResult |
| C ABI | Native applications or custom interop layers | nmb_initialize, nmb_show_message_box, nmb_shutdown |
| Artifact | Purpose |
|---|---|
src/dotnet/NativeMessageBox |
Managed wrapper, host abstraction, marshaling, and diagnostics |
include/native_message_box.h |
Public ABI contract for native/FFI consumers |
src/native |
Per-platform implementations for Windows, macOS, Linux, iOS, Android, and browser |
artifacts/ |
Generated runtime zips, AAR/XCFramework outputs, browser package, and NuGet package |
samples/ |
Avalonia samples for desktop, mobile, and browser flows |
If you are evaluating the library, start with the .NET quickstart and then review Platform Capabilities. That path will show you the full feature envelope and where each platform narrows it.