Platforms & setup
bibui 1.0.0 supports Linux on x64. This page says what a Linux machine needs for each route. It also says how far each other platform has got. Supported platforms are part of the version promise. Dropping one, or needing a new native library, means a major release.
| Platform | Status | Silk + Skia | Wayland + managed | Native AOT |
|---|---|---|---|---|
| Linux x64 | Supported | Yesthrough GLFW | YesWayland session only | Wayland route |
| Linux arm64 | Not yet | — | — | — |
| Windows | Not yet | — | n/a | — |
| macOS | Not yet | — | n/a | — |
Linux x64
CI builds and tests every release on Linux x64. You need the .NET 10 SDK and the system libraries for the route you use. To publish with Native AOT, you also need clang and the zlib headers.
What each route needs
| Package | System libraries at run time |
|---|---|
Bibui.Core (always) | FreeType and HarfBuzz, for text |
Bibui.Raster.Skia | fontconfig. Skia's own native library ships in the NuGet package |
Bibui.Platform.Silk, Bibui.Gl | An OpenGL driver. GLFW ships with Silk.NET |
Bibui.Platform.Wayland | libwayland-client, libwayland-cursor, libxkbcommon |
Bibui.Raster.Managed.Backend | Nothing beyond Bibui.Core's |
Set up
# Libraries: text, Wayland, and Skia's fontconfig
sudo apt install libfreetype6 libharfbuzz0b libwayland-client0 libwayland-cursor0 libxkbcommon0 libfontconfig1
# For Native AOT publishing
sudo apt install clang zlib1g-dev
# The .NET 10 SDK, from Microsoft's install script
curl -sSL https://dot.net/v1/dotnet-install.sh | bash -s -- --channel 10.0# Libraries: text, Wayland, and Skia's fontconfig
sudo dnf install freetype harfbuzz libwayland-client libwayland-cursor libxkbcommon fontconfig
# For Native AOT publishing
sudo dnf install clang zlib-devel
# The .NET 10 SDK
sudo dnf install dotnet-sdk-10.0# Libraries: text, Wayland, and Skia's fontconfig
sudo pacman -S freetype2 harfbuzz wayland libxkbcommon fontconfig
# For Native AOT publishing
sudo pacman -S clang zlib
# The .NET 10 SDK
sudo pacman -S dotnet-sdkThen check the setup with the counter:
dotnet new console -n Counter && cd Counter
dotnet add package Bibui # or one app package, such as Bibui.App.WaylandManaged
dotnet runPackage names change between distribution releases. If one is not found, search for the library by name (apt search harfbuzz, dnf search harfbuzz).
Display sessions
- Silk + Skia opens its window through GLFW and draws with OpenGL. The measurements on these pages were taken under Hyprland, a Wayland compositor.
- Wayland + managed needs a Wayland session.
WaylandWindow.IsSupportedis false whenWAYLAND_DISPLAYor libwayland-client is missing. An app can then say so, instead of failing to connect. - Headless programs and tests need neither. That is how CI renders on machines with no display.
Linux arm64
Not yet supported. The Wayland + managed route is C# plus system libraries. Nothing in it is specific to x64. It is not built or tested on arm64 yet, so it is not promised. Setup instructions will go here once it is.
- Target:
-r linux-arm64 - Expected route: Wayland + managed, Native AOT
- Boards to test: to be decided
Windows
Not yet supported. The Silk host is built on GLFW and OpenGL, and both run on Windows. Windows blocks the loop during a resize. The Silk packages already handle that with OnRefresh. bibui is not built or tested on Windows yet.
| Step | Windows |
|---|---|
| SDK | .NET 10 SDK, with winget or the installer |
| Route | Silk + Skia; a native host is still to be decided |
| System libraries | To be documented |
| Native AOT | To be decided |
macOS
Not yet supported. GLFW runs on macOS, but Apple deprecated OpenGL there. A supported macOS route would need the CPU, or a GPU path other than GL. Nothing is built or tested on macOS yet.
| Step | macOS |
|---|---|
| SDK | .NET 10 SDK, with the installer or Homebrew |
| Route | To be decided: Silk + CPU raster, or a Metal path |
| System libraries | To be documented |
| Native AOT | To be decided |