Rayo is a declarative, retained-mode UI library for .NET 10.
It is designed for building desktop and cross-platform UI with a code-first model, a retained visual tree, a styling system, and multiple rendering backends.
- Declarative UI composition in C#
- Retained-mode rendering pipeline
- Signal-first reactive model
- Fluent API generated from
VisualElementproperties - Styling system with selectors, triggers, and transitions
- Multiple rendering backends:
Rayo.Rendering.OpenGLRayo.Rendering.SkiaSharpRayo.Rendering.Vulkan
- Hosting packages for desktop and Android
The repository currently publishes these NuGet packages together:
RayoRayo.FluentApiGeneratorRayo.Hosting.AbstractionsRayo.Hosting.AndroidRayo.Hosting.DesktopRayo.RenderingRayo.Rendering.OpenGLRayo.Rendering.SkiaSharpRayo.Rendering.Vulkan
All packages in the release set are versioned together from the same Git tag.
using Rayo.Controls;
using Rayo.Layout;
var page =
new VStack()
.Spacing(12)
.Padding(24)
.Children(
new Label()
.Text("Hello from Rayo")
.FontSize(24),
new Button()
.Text("Click Me")
.Height(40)
);- Rayo: core UI library
- Rayo.Rendering: rendering contracts and primitives
- Rayo.Rendering.OpenGL: OpenGL backend
- Rayo.Rendering.SkiaSharp: SkiaSharp backend
- Rayo.Rendering.Vulkan: Vulkan backend
- Rayo.Hosting.Desktop: desktop hosting
- Rayo.Hosting.Android: Android hosting
- Samples: sample applications
- Help: technical documentation
- Doc/NUGETS_GENERATION.md: NuGet release guide
Restore and build the main library with the repository NuGet configuration:
dotnet restore Rayo/Rayo.csproj --configfile NuGet.Config
dotnet build Rayo/Rayo.csproj --no-restoreThe solution file references missing projects in this environment, so direct project builds are the supported path.
- Help/ARCHITECTURE.md
- Help/STYLE_ENGINE.md
- Help/FLUENT_EXTENSIONS.md
- Help/SOURCE_GENERATOR_NAMESPACE_MACROS.md
The repository includes sample applications such as:
GalleryFluentExamplesStyleDemoOpenGLViewVulkanViewCrossPlatformApp
Rayo is distributed under the MIT License.
See LICENSE for the full text.