CodeBrix.Platform.UnicodeMacOs.ApacheLicenseForever 1.0.249.1295

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

CodeBrix.Platform.Unicode

A redistribution of the International Components for Unicode (ICU) version 77 native binaries, packaged as CodeBrix-family NuGet libraries for .NET 10 applications. This repository produces two NuGet packages — one per operating system:

Package OS
CodeBrix.Platform.Unicode.ApacheLicenseForever Windows (x64 + ARM64)
CodeBrix.Platform.UnicodeMacOs.ApacheLicenseForever macOS (universal: x86_64 + arm64)

Either is usable in any .NET 10 project that needs the ICU 77 native runtime on the respective OS — Windows and macOS have no system ICU, so without one of these packages the first call that needs a Unicode property table fails. The libraries have no managed dependencies other than .NET.

CodeBrix.Platform.Unicode supports applications and assemblies that target Microsoft .NET version 10.0 and later. Microsoft .NET version 10.0 is a Long-Term Supported (LTS) version of .NET, and was released on Nov 11, 2025; and will be actively supported by Microsoft until Nov 14, 2028. Please update your C#/.NET code and projects to the latest LTS version of Microsoft .NET.

Installation

Add the package that matches the operating system you are targeting; the ICU native libraries are then made available to the runtime through the standard NuGet runtimes/<rid>/native/ mechanism.

# Windows apps:
dotnet add package CodeBrix.Platform.Unicode.ApacheLicenseForever

# macOS apps:
dotnet add package CodeBrix.Platform.UnicodeMacOs.ApacheLicenseForever

Which one do I reference? One per target OS: reference the Windows package from a project that runs on Windows, the macOS package from a project that runs on macOS, and both from a solution that ships both. Referencing both in the same build is safe — the two packages share a sentinel property, so the ICU data archive is still delivered exactly once.

Note that the NuGet package IDs and the assembly names are different — there is no package named plain CodeBrix.Platform.Unicode:

  • NuGet package ID: CodeBrix.Platform.Unicode.ApacheLicenseForever - assembly CodeBrix.Platform.Unicode
  • NuGet package ID: CodeBrix.Platform.UnicodeMacOs.ApacheLicenseForever - assembly CodeBrix.Platform.UnicodeMacOs

These are runtime-binaries packages: neither exposes a managed API, so there is no namespace to using and nothing to call. Everything a consumer touches is a native library or an MSBuild property.

CodeBrix.Platform.Unicode (Windows) supports:

  • The ICU 77 "common" native runtime DLL (icuuc77.dll) for Windows on x64 and ARM64.
  • The ICU 77 data shim DLL (icudt77.dll) for both Windows architectures.
  • The full ICU 77 data archive (icudt.dat) — covering Unicode collation, normalization, BiDi, character properties, locale (CLDR) data, time zones, transliteration, and the rest of ICU's runtime data.
  • A buildTransitive MSBuild .targets pair that automatically embeds icudt.dat as an <EmbeddedResource> at consumer-build time, when the consumer project is a CodeBrix.Platform head ($(IsCodeBrixHead) == 'true') and the data has not yet been embedded by another package in the same build ($(CodeBrixIcuDataIncluded) != 'true'). A second target in the same .targets copies icudt.dat beside the output of non-head Exe/WinExe consumers (test projects, console tools); class libraries get neither route.

CodeBrix.Platform.UnicodeMacOs supports:

  • The ICU 77 "common" native runtime library (libicuuc.dylib) for macOS as a universal binary (x86_64 + arm64, one file for Intel and Apple-silicon Macs).
  • The ICU 77 data shim library (libicudata.dylib), also universal.
  • The same full ICU 77 data archive (icudt.dat) — byte-identical to the one in the Windows package.
  • The same auto-embedding buildTransitive MSBuild .targets mechanism, using the same $(IsCodeBrixHead) / $(CodeBrixIcuDataIncluded) properties — so a build that sees both packages still embeds icudt.dat exactly once.

Sample Code

Suppress the automatic data delivery

Set the shared sentinel in your project when something else in the build already supplies icudt.dat; both packages honour it, and neither target then fires.

<PropertyGroup>
  <CodeBrixIcuDataIncluded>true</CodeBrixIcuDataIncluded>
</PropertyGroup>

Use the ICU data from a console tool or a test project

No project change is needed. Any consumer whose OutputType is Exe or WinExe and that is not a CodeBrix.Platform head gets icudt.dat copied beside its output automatically; a CodeBrix.Platform head ($(IsCodeBrixHead) == 'true') gets it embedded as a resource instead. Class libraries get neither route by design, so a library never drops its own copy of the archive into the output folder — whatever roots the build supplies it once.

Documentation

Both NuGet packages include the same AGENT-README.txt, a complete usage guide written for AI coding agents - point your agent at that file when it is wiring either package into a project. It covers the per-RID native payloads, the MSBuild contract and the delivery routes.

Additional usage examples are available in the two test projects, which exercise both delivery routes: https://github.com/ellisnet/CodeBrix.Platform.Unicode/tree/main/tests/CodeBrix.Platform.Unicode.Tests https://github.com/ellisnet/CodeBrix.Platform.Unicode/tree/main/tests/CodeBrix.Platform.UnicodeMacOs.Tests

License

CodeBrix.Platform.Unicode and CodeBrix.Platform.UnicodeMacOs are licensed under the Apache License 2.0 - see the LICENSE file. That covers the library packaging, the .targets files and the wrapper assemblies.

The ICU 77 native binaries (icuuc77.dll, icudt77.dll, libicuuc.dylib, libicudata.dylib, icudt.dat) themselves are licensed under the Unicode License, Version 3 — see the bundled UNICODE-LICENSE.txt file. Both NuGet packages are published under the SPDX expression Apache-2.0 AND Unicode-3.0.

For licensing and provenance information about the open source code included in these packages, see THIRD-PARTY-NOTICES.txt.

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.
  • net10.0

    • No dependencies.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on CodeBrix.Platform.UnicodeMacOs.ApacheLicenseForever:

Package Downloads
CodeBrix.Platform.Runtime.Skia.MacOS.ApacheLicenseForever

macOS Skia runtime host for CodeBrix.Platform applications.

CodeBrix.Platform.TextLayout.ApacheLicenseForever

Pango-class text layout for CodeBrix.Platform apps, with no XAML and no application host required. Shapes text with HarfBuzz, resolves bidirectional runs per UAX #9, itemises across fallback fonts, and reports the geometry an editor or renderer needs: measured size, caret rectangles, cluster-correct hit-testing, per-line metrics, selection rectangles, and per-glyph or combined outline paths for filled and stroked text. Draws into any SKCanvas - an offscreen surface, a document layer, a bitmap. This is a facade over the very same engine that lays out every TextBlock in the framework, so there is exactly one text implementation in the family.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.249.1295 45 9/6/2026
1.0.242.1407 133 8/30/2026
1.0.216.148 190 8/4/2026
1.0.178.348 398 6/27/2026
1.0.164.1223 134 6/13/2026
1.0.164.1065 126 6/13/2026