Repository navigation
Releases: Runic-Artifex/cs-webui
Release list
CS-WebUI 2.5.0-beta.4.6
Native UTF-8 buffers now explicitly include their terminating zero byte, including empty, Unicode and large-buffer values. This prevents stray trailing bytes in native callback responses.
Official WebUI 2.5.0-beta.4 assets are refreshed to upstream commit f1b28eeeecfc2d63bdb4d4857c6f137468c6d6f6. The C header and its 112 exports remain unchanged. Source-build lifecycle verification now runs maintained tests against each installed native library.
Both packages are versioned 2.5.0-beta.4.6: CsWebUi and CsWebUi.Native.
Release source: tested commit 1021918a07e34155f7e709c19eaff3f6300b2ff5, merged through PR #13. Managed, Nix, all five source-platform lifecycle jobs, all five dynamic package consumers and the Windows static consumer passed. Local full native suites passed 29/29 without skips against official and source-built libraries; isolated NativeAOT HTTP lifecycle and the complete hosted Translation Editor authoring journey also passed.
Attached originals and provenance preserve the exact verified upstream archive bytes. Every bootstrap commit, digest, version, header and ABI guard remains mandatory.
v2.5.0-beta.4.5
Highlights
- Expose six high-level window controls already supported by official WebUI.
- Package focused README documentation for both
CsWebUiandCsWebUi.Native. - Pin and enforce official upstream WebUI source and binary provenance.
- Strengthen server lifecycle, HTTP serving, managed disposal, package-consumer, and NativeAOT coverage.
- Adopt the CS-WebUI public branding and NuGet display metadata without changing package IDs or namespaces.
- Add the maintained comparative-stress adapter used by Runic Desktop validation.
This release remains deliberately upstream-only. It does not include the experimental fork-only request/streaming ABI, generated ABI work, or the large example import.
Changes
- Adopt CS-WebUI public branding
- Use CS-WebUI display branding
- Add maintained comparative stress baseline
- Prepare upstream-only 2.5.0-beta.4.5 release
Full changelog: v2.5.0-beta.4.4...v2.5.0-beta.4.5
v2.5.0-beta.4.4
What's Changed
- Align release metadata with Runic Artifex by @ViktorJannicke in #4
- Prepare CsWebUi for official WebUI wrapper listing by @ViktorJannicke in #6
- Move Vite asset pipeline ownership to RunicAssets by @ViktorJannicke in #7
Full Changelog: v2.5.0-beta.4.3...v2.5.0-beta.4.4
v2.5.0-beta.4.3
Added
- Added an immutable, in-memory virtual filesystem for serving embedded web applications.
- Added build-time packing of Vite
distdirectories through theWebUiDistMSBuild property. - Added deterministic, incremental asset packaging with Brotli compression, SHA-256 integrity checks, and efficient shared buffers.
- Added support for optimized CsWebUi archives, ZIP files, Brotli-compressed TAR archives, and development directories.
- Added configurable SPA routing fallback, index files, archive size limits, file-count limits, MIME types, caching headers, safe URL decoding, traversal protection, and in-memory 404 responses.
- Added
WebUiWindow.SetVirtualFileSystem(...)for serving packaged assets directly from WebUI. - Added optional static linking for Windows
win-x64NativeAOT applications throughCsWebUiStaticLink, eliminating the publishedwebui-2.dllandWebView2Loader.dll. - Added the static WebView2 loader, redistribution notices, and package validation targets.
Changed
- Updated the pinned upstream WebUI revision from
6c561ed7toc32f7021. - Updated WebUI file-handler integration to support both direct and asynchronous response modes.
- Improved
WebUiApplication.WaitAsynccancellation behavior, including reliable handling of pre-cancelled tokens. - Expanded documentation with embedded Vite deployment, archive configuration, SPA routing, security guidance, and static NativeAOT linking instructions.
Build and CI
- Added dynamic package smoke tests across Windows, Linux x64/ARM64, and macOS x64/ARM64.
- Added a Windows NativeAOT static-link smoke test that verifies WebUI DLLs are neither published nor dynamically imported.
- Added embedded-resource and virtual-filesystem test coverage, including compression, integrity, routing, traversal, limits, MIME responses, and async serving.
- Centralized validation of the pinned upstream WebUI ABI before native builds.
- Added static Windows WebUI and WebView2 asset production to the native packaging workflow.
- Added a release preflight stage before NuGet package creation.
- Upgraded GitHub Actions to Node 24-compatible releases and switched the Nix installer workflow to
NixOS/nix-installer-action.
Comparison: 4 commits, 33 files changed, 2,074 insertions, and 51 deletions. The project version metadata remains 2.5.0-beta.4.2, so it should be bumped before publishing the next release.
Full Changelog: v2.5.0-beta.4.2...v2.5.0-beta.4.3
v2.5.0-beta.4.2
What's Changed
- Statically link MSVC runtime in Windows native asset by @ViktorJannicke in #1
New Contributors
- @ViktorJannicke made their first contribution in #1
Full Changelog: v2.5.0-beta.4.1...v2.5.0-beta.4.2
v2.5.0-beta.4.1
CsWebUi 2.5.0-beta.4.1
First prerelease of CsWebUi: NativeAOT-friendly .NET 10 bindings for WebUI 2.5.0-beta.4.
Highlights
- Use installed browsers or supported embedded WebViews for lightweight desktop interfaces.
- Safe, deterministic
WebUiWindowownership and cleanup. - Synchronous and asynchronous JavaScript-to-.NET bindings.
- Typed arguments and
WebUiResultresponses. - JavaScript execution and raw binary messaging.
- UTF-8-safe native interop with explicit error handling.
- Trimming and NativeAOT compatibility.
- Custom native-library path support.
Packages
- CsWebUi — High-level window, event, callback, JavaScript, browser/server, and lifecycle APIs.
- CsWebUi.Native — Direct, unsafe bindings for the complete WebUI 2.5.0-beta.4 C ABI.
Bundled native runtimes
CsWebUi.Native includes the standard non-TLS WebUI library for:
- Windows x64
- Linux x64
- Linux ARM64
- macOS x64
- macOS ARM64
The raw TLS API remains available when supplying a custom TLS-enabled WebUI build.
Installation
dotnet add package CsWebUi --prereleaseFor direct native API access:
dotnet add package CsWebUi.Native --prereleaseExample
using CsWebUi;
using var window = new WebUiWindow();
window.Bind("multiply", static e =>
WebUiResult.FromInt64(e.GetInt64() * e.GetInt64(1)));
window.Show("""
<!doctype html>
<script src="webui.js"></script>
<button onclick="multiply(6, 7).then(alert)">Multiply</button>
""");
WebUiApplication.Wait();Prerelease notice
This release follows WebUI’s 2.5 beta ABI. APIs and native compatibility may change before the stable release.
Browser mode requires a supported installed browser. Embedded WebView mode requires the relevant platform WebView dependencies.