WebUI.NET.Natives
2.4.2.1
dotnet add package WebUI.NET.Natives --version 2.4.2.1
NuGet\Install-Package WebUI.NET.Natives -Version 2.4.2.1
<PackageReference Include="WebUI.NET.Natives" Version="2.4.2.1" />
paket add WebUI.NET.Natives --version 2.4.2.1
#r "nuget: WebUI.NET.Natives, 2.4.2.1"
// Install WebUI.NET.Natives as a Cake Addin #addin nuget:?package=WebUI.NET.Natives&version=2.4.2.1 // Install WebUI.NET.Natives as a Cake Tool #tool nuget:?package=WebUI.NET.Natives&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 was computed. 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 was computed. 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 was computed. 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 | netcoreapp1.0 was computed. netcoreapp1.1 was computed. netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard1.1 is compatible. netstandard1.2 was computed. netstandard1.3 was computed. netstandard1.4 was computed. netstandard1.5 was computed. netstandard1.6 was computed. netstandard2.0 was computed. netstandard2.1 was computed. |
.NET Framework | net45 was computed. net451 was computed. net452 was computed. net46 was computed. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen30 was computed. tizen40 was computed. tizen60 was computed. |
Universal Windows Platform | uap was computed. uap10.0 was computed. |
Windows Phone | wpa81 was computed. |
Windows Store | netcore was computed. netcore45 was computed. netcore451 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 1.1
- NETStandard.Library (>= 1.6.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.