Skip to content

Releases: Runic-Artifex/cs-webui

CS-WebUI 2.5.0-beta.4.6

Pre-release

Choose a tag to compare

@ViktorJannicke ViktorJannicke released this 05 Oct 22:01
1021918

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

v2.5.0-beta.4.5 Pre-release
Pre-release

Choose a tag to compare

@ViktorJannicke ViktorJannicke released this 22 Sep 16:06
cb75135

Highlights

  • Expose six high-level window controls already supported by official WebUI.
  • Package focused README documentation for both CsWebUi and CsWebUi.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

Full changelog: v2.5.0-beta.4.4...v2.5.0-beta.4.5

v2.5.0-beta.4.4

v2.5.0-beta.4.4 Pre-release
Pre-release

Choose a tag to compare

@ViktorJannicke ViktorJannicke released this 07 Aug 09:11
c48fea4

What's Changed

Full Changelog: v2.5.0-beta.4.3...v2.5.0-beta.4.4

v2.5.0-beta.4.3

v2.5.0-beta.4.3 Pre-release
Pre-release

Choose a tag to compare

@ViktorJannicke ViktorJannicke released this 24 Jul 08:12

Added

  • Added an immutable, in-memory virtual filesystem for serving embedded web applications.
  • Added build-time packing of Vite dist directories through the WebUiDist MSBuild 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-x64 NativeAOT applications through CsWebUiStaticLink, eliminating the published webui-2.dll and WebView2Loader.dll.
  • Added the static WebView2 loader, redistribution notices, and package validation targets.

Changed

  • Updated the pinned upstream WebUI revision from 6c561ed7 to c32f7021.
  • Updated WebUI file-handler integration to support both direct and asynchronous response modes.
  • Improved WebUiApplication.WaitAsync cancellation 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

v2.5.0-beta.4.2 Pre-release
Pre-release

Choose a tag to compare

@ViktorJannicke ViktorJannicke released this 16 Jul 14:44
f706387

What's Changed

New Contributors

Full Changelog: v2.5.0-beta.4.1...v2.5.0-beta.4.2

v2.5.0-beta.4.1

v2.5.0-beta.4.1 Pre-release
Pre-release

Choose a tag to compare

@ViktorJannicke ViktorJannicke released this 12 Jul 18:35
748b42c

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 WebUiWindow ownership and cleanup.
  • Synchronous and asynchronous JavaScript-to-.NET bindings.
  • Typed arguments and WebUiResult responses.
  • 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 --prerelease

For direct native API access:

dotnet add package CsWebUi.Native --prerelease

Example

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.