Broiler.Hosting.Linux 0.1.0-preview.1

This is a prerelease version of Broiler.Hosting.Linux.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package Broiler.Hosting.Linux --version 0.1.0-preview.1
                    
NuGet\Install-Package Broiler.Hosting.Linux -Version 0.1.0-preview.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Broiler.Hosting.Linux" Version="0.1.0-preview.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Broiler.Hosting.Linux" Version="0.1.0-preview.1" />
                    
Directory.Packages.props
<PackageReference Include="Broiler.Hosting.Linux" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Broiler.Hosting.Linux --version 0.1.0-preview.1
                    
#r "nuget: Broiler.Hosting.Linux, 0.1.0-preview.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Broiler.Hosting.Linux@0.1.0-preview.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Broiler.Hosting.Linux&version=0.1.0-preview.1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Broiler.Hosting.Linux&version=0.1.0-preview.1&prerelease
                    
Install as a Cake Tool

Broiler.Hosting

Shared desktop and mobile hosting runtime, windowing services, input fidelity, and platform integration for the Broiler application suite (Broiler.Mail, Broiler.Code, Broiler.Writer, Broiler.Browser).

Components

Broiler.Hosting.Windows

Provides Windows desktop hosting facilities:

  • WindowsClipboard: Hardened Win32 clipboard integration with 1 MB UTF-16 bounds protection, strict GlobalSize validation, direct or lazy HWND owner resolution, and safe OS memory handoff.
  • WindowsWindowSizing: Window sizing, minimum dimension enforcement (DPI-scaled client minimum 640x480) via WM_GETMINMAXINFO, and dynamic multi-monitor DPI transition handling via WM_DPICHANGED.
  • WindowsTheme: System appearance inspection querying dark/light preference, Windows high contrast mode (SPI_GETHIGHCONTRAST), and reduced motion preferences (SPI_GETCLIENTAREAANIMATION), exposing UiSystemSettings.
  • WindowsInputBridge: High-fidelity native input and scroll integration:
    • Top-level window activation focus handoff (WM_SETFOCUS and WM_ACTIVATE transferring Win32 focus to the render child HWND).
    • Exactly-once text delivery across WM_CHAR and IMM32 IME compositions (WM_IME_STARTCOMPOSITION, WM_IME_COMPOSITION, synthetic WM_CHAR suppression after commit).
    • Surrogate pair assembly (\uD83D\uDE00) and stray surrogate cleanup.
    • Shortcut modifier isolation (Ctrl+C, Ctrl+A, Ctrl+V, Ctrl+Z, Ctrl+Backspace, Ctrl+Enter suppressed from text generation) with full AltGr support.
    • Sub-notch precision mouse wheel and horizontal tilt wheel handling (WM_MOUSEWHEEL, WM_MOUSEHWHEEL).
    • Decoupled application-level input filtering hook (Func<UiInputEvent, bool>?).
  • WindowsAutomationBridge & WindowsElementAutomationPeer: Native Windows UI Automation (UIA) bridge:
    • Implements IRawElementProviderFragmentRoot, IRawElementProviderFragment, IRawElementProviderSimple.
    • Maps Broiler UI controls to standard UIA patterns (IInvokeProvider, IValueProvider, ISelectionProvider, ISelectionItemProvider, IToggleProvider, IExpandCollapseProvider, IScrollItemProvider).
    • Coordinate-free control and item tree navigation.
    • Password protection ensuring sensitive fields never expose plain text through UIA.
    • Point hit-testing down to child elements and virtualized list items.
    • Dynamic peer lifecycle management and live region status announcements.

Broiler.Hosting.Linux

Provides Linux desktop hosting facilities:

  • LinuxUiHost: Reusable IUiHost implementation adapting IBroilerRenderer and IBroilerSurface to Broiler UI sessions, tracking viewport dimensions, DPI scale, frame indexing, and invalidations without double-scaling.
  • LinuxX11Clipboard: Hardened X11 clipboard and primary selection host (IUiClipboardHost, IDisposable) with 1 MB payload limits, INCR streaming, UTF-8/Latin-1 conversion, timeout bounds, and safe non-Linux execution guards.
  • LinuxBackendDiagnostics: Preflight verification for X11/EGL/OpenGL dependencies (libEGL.so.1, libGL.so.1, libOpenGL.so.0, libX11.so.6, DISPLAY, architecture).
  • LinuxInputCoordinator & LinuxInputSnapshot: Evdev input stream coordination unifying keyboard and mouse devices, merging modifier keys across separate evdev nodes, pointer clamping, and non-blocking event dispatch.

Broiler.Hosting.Android

Provides Android hosting facilities with multi-targeting support (net10.0 for headless testing and net10.0-android36.0 for full runtime integration):

  • AndroidUiHost: Reusable IUiHost, IUiClipboardHost, and IUiTextInputHost adapter supporting AndroidBroilerView, direct delegates, or headless surface/renderer.
  • AndroidBackendDiagnostics: Preflight check for Android runtime, architecture, and native graphic libraries (libEGL.so, libGLESv3.so, libandroid.so), with safe degradation on non-Android hosts.
  • AndroidBroilerView: Hardware-accelerated SurfaceView with Choreographer vsync loop, device lost recovery, density/viewport tracking, touch/hover/key routing, IME lifecycle, and clipboard glue.
  • AndroidCanvasRenderer: Hardware-accelerated IBroilerRenderer replaying display lists onto Android Canvas and Paint with typeface caching.
  • AndroidInputCoordinator: Unified coordinator routing touch contacts, pen contacts, key events, and IME text events into UiInputEvents.
  • AndroidInsetLayout: FrameLayout handling display cutouts, navigation bars, and status bar insets.
  • BroilerInputConnection: BaseInputConnection bridging Android IME to AndroidTextInputDevice.

Architecture & Dependency Separation

Broiler.Hosting follows strict unidirectional dependency layering:

UI Abstractions + Graphics + Native Platform
                   │
                   ▼
       Broiler.Hosting.<Platform>
                   │
                   ▼
  Consumer Heads (Mail, Code, Writer, Browser)

Application-specific concerns (close/save guards, draft persistence, credential vaults, application commands) remain strictly outside the hosting component in the respective application layers.

Testing

dotnet test Broiler.Hosting.slnx

All unit tests in tests/Broiler.Hosting.Windows.Tests, tests/Broiler.Hosting.Linux.Tests, and tests/Broiler.Hosting.Android.Tests run headlessly and validate clipboard safety, sizing/DPI, system theme queries, input fidelity, backend diagnostics, and accessibility trees across platforms.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-preview.9 0 10/11/2026
0.1.0-preview.8 144 10/7/2026
0.1.0-preview.7 77 10/5/2026
0.1.0-preview.6 62 10/4/2026
0.1.0-preview.5 100 10/3/2026
0.1.0-preview.4 84 10/2/2026
0.1.0-preview.3 64 10/2/2026
0.1.0-preview.2 57 10/2/2026
0.1.0-preview.1 57 10/2/2026