A modern, cross-platform C++ webview library for building lightweight desktop apps with web technologies.
Saucer is a modern, cross-platform C++ webview library that allows developers to build desktop applications using web technologies like HTML, CSS, and JavaScript. It solves the problem of creating lightweight, native-feeling apps that run seamlessly on Windows, Linux, and macOS by leveraging each operating system's built-in web renderer.
C++ developers looking to build cross-platform desktop applications with web-based UIs, especially those who value small binary sizes and direct integration between C++ logic and JavaScript frontends.
Developers choose Saucer for its minimal footprint, native performance, and seamless C++/JavaScript interoperability, offering a modern alternative to heavier Electron-based solutions while supporting multiple backends and compilation without exceptions or RTTI.
🛸 A modern, cross-platform C++ webview library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses native OS web renderers to produce binaries as small as ~250KB, making it ideal for distribution-sensitive applications where download size matters.
Provides a reflection-powered API to expose C++ functions to JavaScript and evaluate JS code, enabling tight integration between backend logic and frontend UI without heavy bridges.
Supports multiple backends per platform (e.g., WebView2 on Windows, WebKitGtk on Linux, WKWebView on macOS), allowing developers to choose based on performance or feature needs.
Designed with thread safety, coroutine support, and optional compilation without exceptions or RTTI, catering to performance-conscious C++ developers adopting contemporary practices.
Offers only a few official modules (e.g., for file pickers, PDF export), lacking the extensive plugin libraries of alternatives like Electron, which can slow development for common needs.
Requires manual setup for frontend asset bundling and C++ binding, with no built-in tooling for popular frameworks like React or Vue, increasing initial configuration time.
Language bindings for Java, PHP, and Rust are community-maintained, as noted in the README, potentially leading to inconsistent updates, bugs, or abandonment compared to core C++ support.