WebUI.NET
2.4.2.1
dotnet add package WebUI.NET --version 2.4.2.1
NuGet\Install-Package WebUI.NET -Version 2.4.2.1
<PackageReference Include="WebUI.NET" Version="2.4.2.1" />
paket add WebUI.NET --version 2.4.2.1
#r "nuget: WebUI.NET, 2.4.2.1"
// Install WebUI.NET as a Cake Addin #addin nuget:?package=WebUI.NET&version=2.4.2.1 // Install WebUI.NET as a Cake Tool #tool nuget:?package=WebUI.NET&version=2.4.2.1
<div align="center">
WebUI.NET
</div>
WebUI is a minimal GUI library that uses a Browser already installed instead of bundling a large browser engine or requiring support for a native WebView.
This library contains high level bindings and precompiled binaries for the native WebUI library.
Features
- Portable (Needs only a web browser and .NET at runtime)
- Fast binary communication protocol
- Multi-platform & Multi-Browser
- Using private profile for safety
Screenshots
If you want to see whats possible here are screenshots of the text_editor example (originally ported from the C version) on Windows, MacOS and Linux (Gnome) <p align="middle"> <img src="https://github.com/Juff-Ma/WebUI.NET/blob/main/assets/Windows-Screenshot.png" width="33%" /> <img src="https://github.com/Juff-Ma/WebUI.NET/blob/main/assets/MacOS-Screenshot.png" width="33%" /> <img src="https://github.com/Juff-Ma/WebUI.NET/blob/main/assets/Linux-Screenshot.png" width="33%" /> </p>
More Info
If you are not yet convinced or need more informations about WebUI take a look at it's homepage or it's repository
Contents
Installation
You can install WebUI.NET using nuget by using the nuget explorer or the following command:
dotnet add package WebUI.NET
In addition, to use prebuild versions of WebUI you'll need to download WebUI.NET.Natives
dotnet add package WebUI.NET.Natives
or the secure natives (OpenSSL support)
dotnet add package WebUI.NET.Natives.Secure
Debug builds
The debug builds of WebUI.NET are provided using github packages and contain debug builds of the library and the underlying natives. WebUI will ONLY provide debug logging on such builds. If you did install the nuget.org variant first you might need to clear your nuget cache and bin/obj directories in order for nuget to download and use those builds.
Usage
A basic example (.NET 7.0+) of how to open a Window and display a basic message (taken from basic_window example)
using WebUI;
Window window = new();
window.Show("""
<html>
<script src="webui.js"></script>
<head>
<title>WebUI</title>
</head>
<body>
<h1>WebUI</h1>
<p>It works!</p>
</body>
</html>
""");
Utils.WaitForExit();
For more examples you can look at the examples directory.
Deployment Options
If you finished writing your app and now want to ship it to your users you have multiple options, of course you can package the app in whatever way you want but here are some tested recommendations. For Windows and Linux deployment take a look at PupNet-Deploy and for MacOS you can write a little startup bash script and then use Platypus and create-dmg to build the package.
Building
You can build WebUI.NET itself like every other .NET project by using dotnet build
. When buildung the .nupkg and .snupkg are put into the repective configuration's directory inside the nupkgs toplevel directory.
In contrast the examples require the library and natives provided by WebUI.NET and WebUI.NET.Natives. Because of a limitation of .NET natives can only be provided by a nuget package and not a package reference. The examples take the nuget binaries from the nupkgs directory, this leads to some problems while development (like requiring to clear the nuget cache every now and then). For you this will mean that if you want to build the examples or the full solution you will need to build the WebUI.NET and WebUI.NET.Natives packages at least once so they provide those packages locally.
Licensing
WebUI.NET is licensed under the MPL-2.0 license, more information about dos and don'ts can be found on the Mozilla MPL FAQ but in short you can use this library in binary form in proprietary and open-source projects as long as you keep the copyright and tell people where to download the library. If you want to include the library in source code form you will need to keep every file that contains MPL code under the MPL. Notable exception are the LGPL2.1+ GPL2+ or AGPL3+ licenses that the MPL also allows you to use. DISCLAIMER: I'm not a lawyer and this is not legal advice, if you want more specific info please read the FAQ and the license<br/> The examples are NOT part of the main project and can be used under the CC0 license for that matter as long as you respect the license of this library and the other libraries used by this project.
WebUI and its logo (on which the WebUI.NET logo is based) are licensed under the MIT license.
All libraries used in this projects are under Copyright (C) of their respective owners. You can find more information on the copyright notice of the WebUI.NET.Natives and WebUI.NET.Natives.Secure nuget packages.
Alternatives
If you want a library that is not licensed under MPL but rather MIT and has similar functionality consider checking out WebUI4CSharp
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. 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 is compatible. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 is compatible. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.2
- No dependencies.
-
.NETFramework 4.8
- No dependencies.
-
.NETStandard 2.0
- No dependencies.
-
.NETStandard 2.1
- No dependencies.
-
net6.0
- No dependencies.
-
net7.0
- 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.