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
<PackageReference Include="CodeBrix.Platform.UnicodeMacOs.ApacheLicenseForever" Version="1.0.249.1295" />
<PackageVersion Include="CodeBrix.Platform.UnicodeMacOs.ApacheLicenseForever" Version="1.0.249.1295" />
<PackageReference Include="CodeBrix.Platform.UnicodeMacOs.ApacheLicenseForever" />
paket add CodeBrix.Platform.UnicodeMacOs.ApacheLicenseForever --version 1.0.249.1295
#r "nuget: CodeBrix.Platform.UnicodeMacOs.ApacheLicenseForever, 1.0.249.1295"
#:package CodeBrix.Platform.UnicodeMacOs.ApacheLicenseForever@1.0.249.1295
#addin nuget:?package=CodeBrix.Platform.UnicodeMacOs.ApacheLicenseForever&version=1.0.249.1295
#tool nuget:?package=CodeBrix.Platform.UnicodeMacOs.ApacheLicenseForever&version=1.0.249.1295
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- assemblyCodeBrix.Platform.Unicode - NuGet package ID:
CodeBrix.Platform.UnicodeMacOs.ApacheLicenseForever- assemblyCodeBrix.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
buildTransitiveMSBuild.targetspair that automatically embedsicudt.datas 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.targetscopiesicudt.datbeside the output of non-headExe/WinExeconsumers (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
buildTransitiveMSBuild.targetsmechanism, using the same$(IsCodeBrixHead)/$(CodeBrixIcuDataIncluded)properties — so a build that sees both packages still embedsicudt.datexactly 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 | Versions 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. |
-
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 |