Rust + Win32 + WebView2

极小内存的
多标签浏览器

用原生 Win32 GDI 绘制浏览器外壳,所有标签共享单个 WebView2 进程, 工作集压缩器持续归还内存给操作系统——Task Manager 可见仅 ~25 MB

内存优化实测

三个阶段,从 500MB 到 25MB —— 优化 95%

初始版本(Chrome UI 独立 WebView2)
~500
MB · 8 个进程
阶段一(原生 chrome UI + 共享环境)
~290
MB · 3 个进程
阶段二(自定义环境 + 工作集压缩)
~25
MB · 2-3 个进程

核心功能

📑

多标签浏览

Ctrl+T 新建、Ctrl+W 关闭、点击切换。所有标签共享单个 WebView2 环境,极致节省资源。

🔖

书签同步

注册账号后书签自动云端持久化,多设备间无缝同步。支持书签栏快速打开与删除。

📖

阅读模式

服务端抓取页面并提取正文,无 JS、极简 DOM,省内存且护眼。一键进入沉浸式阅读。

🎨

原生 UI 绘制

标签栏、导航栏、书签栏全部用 Win32 GDI 原生绘制,不占用任何 WebView 实例,直接省掉 ~100MB。

🌙

深色 / 浅色主题

一键切换深色与浅色主题,适配不同使用场景。新标签页自带时钟、问候语和快捷链接。

极致瘦身

编译产物仅 ~0.6MB:opt-level=z + LTO + strip + panic=abort。启动快、占用小。

技术架构

原生 UI + 共享 WebView2 + 工作集压缩

┌──────────────────── mini-browser.exe (Rust) ────────────────────┐ │ tao 事件循环 │ │ ┌──────────────────────┐ ┌─────────────────────────────────┐ │ │ │ src/ui.rs │ │ src/main.rs │ │ │ │ 原生 GDI chrome UI │ │ 标签管理 / 事件分发 │ │ │ │ 标签栏·导航栏·书签 │◄───┤ WebView2 环境 / 工作集压缩 │ │ │ └──────────────────────┘ └──────────────┬──────────────────┘ │ │ ▼ │ │ 共享 ICoreWebView2Environment │ │ (--single-process, 无 GPU/crashpad) │ └──────────────────────────────────────────────────────────────────┘ │ ▼ Node.js 本地服务 (localhost:3210) /api/login /api/register /api/bookmarks /read

技术栈

🦀 Rust 🪟 Win32 GDI 🌐 WebView2 📦 tao 🔗 wry ⚙️ Node.js 📖 Readability