Build cross-platform desktop apps with C++ & Web Technologies
The documentation can be found here.
Examples can be found here.
Learn how to create your first saucer app here.
Saucer is a modern C++ webview library that allows you to build cross-platform desktop applications with ease.
It supports all three major desktop operating systems (Windows, Linux, MacOS) and has several backend implementations.
-
💻 Cross Platform
Windows Linux MacOS Backend Win32 & WebView2 GTK4 & WebKitGtk Cocoa & WKWebView Qt5 / Qt6 & QWebEngine -
🔀 Seamless C++ / JavaScript interoperability
-
📦 Supports Embedding Frontend into binary
-
🪶 Lightweight
By using the operating systems native web renderer (or a commonly used one), it is possible to create binaries as small as ~250KB
-
🧰 Customizability
Modules allow access to platform specific implementations, making it possible to tweak the library to your hearts content
-
🏗️ Bindings
Saucer also exposes a C-Interface, thus making it possible to write bindings for it in your favorite language!
-
🦺 Thread-Safe
-
⚖️ FOSS
Licensed under MIT!
-
🪟 Built-in support for frame-less windows and transparency
#include <saucer/smartview.hpp>
int main()
{
auto app = saucer::application::acquire({
.id = "example",
});
saucer::smartview webview{{
.application = app,
}};
webview.set_size(900, 700);
webview.set_title("Hello World!");
webview.expose(
"add_random",
[&](float number)
{
auto random = webview.evaluate<float>("Math.random()").get();
return number + random;
},
saucer::launch::async);
webview.set_file("index.html");
webview.show();
app->run();
return 0;
}