Skip to content
NuiCppPublic

About

A C++ WebView UI Library

Topics

Resources

Stars

228 stars

Watchers

6 watching

Forks

Repository files navigation

Nui

A C++ WebView UI Library. Nui enables you to build C++ user interfaces using a browser window tied to a main process.

Website: https://nuicpp.org

Documentation: https://nuicpp.github.io/nui-documentation/ AI Skill, which also is a pretty good TLDR: Skill

Setup

How to get going with nui is explained here in detail: Installation

A template to get going can be found here: Template

Platforms & Compilers

Tested on:

  • Ubuntu (using clang20 and libc++) example workflow
  • Windows (using clang20 and current msys libstdc++) example workflow
  • MacOS 13: (using clang16) example workflow

Not automatically tested but should work:

  • Windows with Visual Studio, vcpkg and clang_cl
  • Arch Linux
  • MacOS 14+
  • Other Linux Distributions with new enough packages for C++20

Not supported:

  • Mobile Platforms
  • BSD Systems

Browser engines

On Linux and macOS, NUI_BROWSER_ENGINE picks the engine: native (default, WebKitGTK or WKWebView) or cef (Chromium Embedded Framework). Windows always uses WebView2, which is Chromium already.

Engine Pro Con
native No runtime to ship, small installs, engine updates come with the OS Features and bugs depend on the OS's WebKit, WebKitGTK is slow on heavy UIs
cef One Chromium version everywhere, faster than WebKitGTK About 350 MB more to ship, more memory for small apps, you ship Chromium's security fixes

To use CEF, configure with it, the code stays the same (on macOS, also call nui_configure_application):

cmake -B build -DNUI_BROWSER_ENGINE=cef

Getting CEF, options and deployment: The CEF browser engine.

Examples

nui-sftp

nui-sftp is a terminal emulator, file explorer and ssh & sftp client built using nui. It is my nui dogfooding project. It is a good example of a non-trivial application built with nui, and is available here: https://github.com/5cript/nui-sftp

Example nui-sftp Example nui-sftp Settings

Using SAPUI5 Components

(WARNING: I experience serious performance problems caused by these components when 100+ components are used, because each and every single component calls getComputedStyle on creation causing forced reflows.) Example SAPUI5

To use them, see this repo: https://github.com/NuiCpp/ui5

Using Bootstrap and some custom CSS

Example Bootstrap

Other

More found on https://nuicpp.org

Contributing

Pull Requests are welcome, please format your changes and additions with clang-format (Ideally version 22+).

AI

For you AI Vibe Coders out there, I have created a claud skill file which also douples as a TLDR documentation. It is available here: Skill

Dependencies pulled by CMake

Nui uses the following dependencies:

About

A C++ WebView UI Library

Topics

Resources

Stars

228 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages