Protocol5.UAI.CSharp 0.1.0

dotnet add package Protocol5.UAI.CSharp --version 0.1.0
                    
NuGet\Install-Package Protocol5.UAI.CSharp -Version 0.1.0
                    
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="Protocol5.UAI.CSharp" Version="0.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Protocol5.UAI.CSharp" Version="0.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Protocol5.UAI.CSharp" />
                    
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 Protocol5.UAI.CSharp --version 0.1.0
                    
#r "nuget: Protocol5.UAI.CSharp, 0.1.0"
                    
#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 Protocol5.UAI.CSharp@0.1.0
                    
#: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=Protocol5.UAI.CSharp&version=0.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Protocol5.UAI.CSharp&version=0.1.0
                    
Install as a Cake Tool

Protocol5.UAI.CSharp

Protocol5.UAI.CSharp is a small starter library for adding UAI-1 support to C# websites.

It focuses on the parts that websites need first:

  • x-uai-1 language-tag handling
  • CultureInfo integration that stays safe for cross-platform sites
  • Radix 63404 encode/decode helpers for canonical identifiers
  • ASP.NET Core middleware that recognizes UAI requests from query string, cookie, or Accept-Language

Why the kit uses x-uai-1

UAI-1 is machine-facing and canonical. It should not depend on user locale for semantic meaning.

For websites, the safest split is:

  • Use x-uai-1 as the public language tag for HTML and HTTP negotiation
  • Use CultureInfo.InvariantCulture for canonical serialization
  • Use CultureInfo.GetCultureInfo("x-uai-1") when the runtime supports it

This matches the practical guidance in Microsoft Learn:

Install

dotnet add package Protocol5.UAI.CSharp

If you downloaded the .nupkg directly from Protocol5, install it from a local path instead:

dotnet add package Protocol5.UAI.CSharp --source .

ASP.NET Core quick start

using Protocol5.UAI;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddProtocol5UaiWebsiteSupport();

var app = builder.Build();
app.UseProtocol5UaiWebsiteSupport();

app.MapGet("/uai-demo", (HttpContext context) =>
{
    var sampleId = Radix63404.Encode(5651);

    return Results.Json(new
    {
        protocol = UaiCultureInfo.CanonicalVersion,
        language = context.GetProtocol5HtmlLanguage(),
        sampleCanonicalId = sampleId
    });
});

app.Run();

HTML recommendation

When you serve a page intended for UAI-aware agents or tooling, set the document language explicitly:

<html lang="x-uai-1">

Canonical formatting rule

When you serialize canonical UAI values, always use InvariantCulture:

using Protocol5.UAI;

var confidence = 0.875m.ToString(UaiCultureInfo.CanonicalSerializationCulture);

Radix 63404 examples

These values line up with the Protocol5 reference material:

Radix63404.Encode(41);        // J
Radix63404.Encode(5651);      // ᙖ
Radix63404.Encode(267914296); // Ⴤ绠
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.1

    • No dependencies.
  • net8.0

    • No dependencies.

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 161 4/13/2026