Skills2026年5月12日·1 分钟阅读

webview — Tiny Cross-Platform Web-Based Desktop UI Library

Embed a native webview in C, C++, Go, Rust, or Python applications to build lightweight desktop apps using HTML, CSS, and JavaScript without bundling a full browser engine.

Agent 就绪

这个资产可以被 Agent 直接读取和安装

TokRepo 同时提供通用 CLI 命令、安装契约、metadata JSON、按适配器生成的安装计划和原始内容链接,方便 Agent 判断适配度、风险和下一步动作。

Native · 98/100策略:允许
Agent 入口
任意 MCP/CLI Agent
类型
Skill
安装
Single
信任
信任等级:Established
入口
webview
通用 CLI 安装命令
npx tokrepo install 02173b44-4e1f-11f1-9bc6-00163e2b0d79

Introduction

webview is a minimal cross-platform library that provides a native webview window for building desktop applications with web technologies. Instead of bundling Chromium like Electron, it uses the platform's built-in web engine — WebKit on macOS, WebKitGTK on Linux, and WebView2 (Edge/Chromium) on Windows — resulting in tiny binary sizes and low memory usage.

What webview Does

  • Opens a native window with an embedded web renderer on Windows, macOS, and Linux
  • Supports two-way bindings between native code and JavaScript in the webview
  • Uses the system's built-in browser engine, producing binaries under 2 MB
  • Provides C/C++ core API with official bindings for Go, Rust, Python, and other languages
  • Handles window management, title, size, and hints through a simple API

Architecture Overview

The library is a thin C/C++ wrapper around platform-specific webview implementations. On macOS it uses WKWebView via Cocoa, on Linux it uses WebKitGTK, and on Windows it leverages WebView2 (the Edge-based runtime). A small message-passing bridge connects the native side to JavaScript running in the webview, enabling window.external.invoke() calls from JS and webview.Eval() calls from native code. The entire core is a single-header C++ library.

Self-Hosting & Configuration

  • For Go: go get github.com/webview/webview_go; for Rust: add webview crate to Cargo.toml
  • On Linux, install libwebkit2gtk-4.1-dev as a build dependency
  • On Windows, the WebView2 runtime ships with Windows 10/11 or can be bootstrapped automatically
  • Set window dimensions, title, and resize hints via the constructor or setter methods
  • Serve HTML inline via SetHtml() or load a URL via Navigate()

Key Features

  • Extremely small footprint: no bundled browser engine, final binary typically under 2 MB
  • Two-way JS ↔ native binding for calling Go/Rust/C++ functions from the web UI
  • Supports loading local HTML, remote URLs, or data URIs
  • Window resize hints (none, min, max, fixed) for controlling user resizing behavior
  • Thread-safe dispatch function for updating the webview from background threads

Comparison with Similar Tools

  • Electron — Bundles full Chromium (~150 MB); webview uses the system engine at a fraction of the size
  • Tauri — Rust-based framework that also uses system webviews but adds a full app framework; webview is lower-level
  • Wry — Tauri's webview abstraction layer; webview is simpler with fewer features and wider language support
  • Neutralinojs — Lightweight alternative to Electron; webview is even more minimal as a library rather than a framework
  • CEF (Chromium Embedded) — Full Chromium embedding for C++; webview trades features for simplicity and size

FAQ

Q: Does webview support all modern web APIs? A: It depends on the platform's browser engine version. WebView2 on Windows and WKWebView on macOS support most modern APIs. Linux depends on the installed WebKitGTK version.

Q: Can I use frameworks like React or Vue inside webview? A: Yes. You can serve a bundled SPA via a local file or embedded HTTP server and load it in the webview.

Q: How do I package the app for distribution? A: Compile your native binary as usual. On Windows, consider bundling the WebView2 bootstrapper. On macOS, create an .app bundle. The binary itself needs no additional runtime.

Q: Is webview suitable for complex production apps? A: It works well for utilities, dashboards, and internal tools. For complex apps requiring native menus, tray icons, or system integration, a full framework like Tauri may be more appropriate.

Sources

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产