Goo 0.27.3

There is a newer version of this package available.
See the version list below for details.
dotnet add package Goo --version 0.27.3
                    
NuGet\Install-Package Goo -Version 0.27.3
                    
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="Goo" Version="0.27.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Goo" Version="0.27.3" />
                    
Directory.Packages.props
<PackageReference Include="Goo" />
                    
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 Goo --version 0.27.3
                    
#r "nuget: Goo, 0.27.3"
                    
#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 Goo@0.27.3
                    
#: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=Goo&version=0.27.3
                    
Install as a Cake Addin
#tool nuget:?package=Goo&version=0.27.3
                    
Install as a Cake Tool

Goo

CI status NuGet version MIT license

A retained UI framework for G#, rendered directly with Vulkan.

Goo applications describe UI as ordinary G# objects. Goo retains mounted state, rebuilds only dirty Cell boundaries, lays out with Yoga, and renders through Vulkan 1.3.

Quick start

Install the .NET 10 SDK and meet the platform requirements, then:

dotnet new install Goo.Templates@0.27.3
dotnet tool install --global Goo.DevTools
dotnet new goo -n HelloGoo
cd HelloGoo
goo dev

The template restores the G# compiler from NuGet automatically. The generated counter runs with hot reload. A separate SDL or HarfBuzz installation is not required.

Custom <GooShaderEffect> source needs the shader tools.

Example

package CounterApp

import Goo

class Counter : Cell {
    private var count int32

    override func Build() Blob -> Container{
        Width: Percent(100),
        Height: Percent(100),
        Padding: 24,
        Gap: 12,
        BackgroundColor: Color.Rgb(24, 31, 43),
        Text{Content: "Count: $count", FontSize: 24, Color: Color.White},
        Button{
            Padding: 10,
            BorderRadius: 10,
            BackgroundColor: Color.Rgb(74, 125, 255),
            OnClick: () -> {
                count++
            },
            Text{Content: "Add one", Color: Color.White},
        },
    }
}

func Main() {
    Window.ConfigureApplication("Goo starter", "1.0.0", "com.example.goostarter")
    Window{Title: "Goo starter", Width: 360, Height: 220, Root: Counter{}}.Run()
}

Cell owns local state. Event handlers invalidate their owning Cell automatically, so changing count rebuilds only this component.

Platforms

Goo ships runtime assets for Windows x64, Linux x64, macOS arm64, Android ARM64, and Android x64. The renderer requires the Vulkan 1.3 feature set used by Goo.

  • Windows x64 is tested on Windows 11 with current vendor Vulkan drivers. The minimum supported Windows version is not yet established.
  • Linux x64 requires Linux 6.6 or newer, glibc 2.27 or newer, a native Wayland 1.18 or newer session, and a TrueType or OpenType sans-serif font. X11 and XWayland are not supported.
  • macOS arm64 requires macOS 14 or newer on Apple silicon. Goo bundles MoltenVK 1.4.2 and selects installed Apple system fonts without requiring a Vulkan SDK.
  • Android requires Android 13 (API 33) or newer and a Vulkan 1.3 device with identity presentation support. Add the Goo.Android adapter to host the same Window and Cell application in an Android activity or native view.

Further reading

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 (15)

Showing the top 5 NuGet packages that depend on Goo:

Package Downloads
Goo.Widgets

Composable, customizable widgets for Goo desktop applications, grouped by category.

Goo.Android

Android presentation and input adapter for Goo's shared Vulkan UI runtime.

Goo.Svg

Optional runtime SVG loading for Goo.

Goo.Audio

Optional UI cues and bounded audio primitives for Goo.

Goo.Animations

Reusable animation factories and patterns for Goo Motion.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.31.0 0 11/14/2026
0.30.0 88 11/11/2026
0.29.1 112 11/8/2026
0.29.0 252 11/8/2026
0.28.7 129 11/7/2026
0.28.6 182 11/7/2026
0.28.5 81 11/7/2026
0.28.4 111 11/7/2026
0.28.3 163 11/6/2026
0.28.2 153 11/6/2026
0.28.1 134 11/5/2026
0.27.11 154 11/5/2026
0.27.10 82 11/4/2026
0.27.9 82 11/4/2026
0.27.8 96 11/4/2026
0.27.7 81 11/3/2026
0.27.6 79 11/3/2026
0.27.5 235 11/3/2026
0.27.4 86 11/3/2026
0.27.3 74 11/3/2026
Loading failed

See the packaged CHANGELOG.md for the changes, supported surface, and limitations of this release.