# VistaS **Repository Path**: losyn/VistaS ## Basic Information - **Project Name**: VistaS - **Description**: **VistaS** 是一个现代化的**跨平台桌面应用开发框架**,基于 **Luvit 运行时**,提供: - 🖥️ **原生 WebView 窗口** - 跨平台桌面应用界面(macOS/Windows/Linux) - 🗄️ **嵌入式数据库引擎** - 基于 CSV 的事务性数据库(CsvDB) - 🔧 **企业级工具库** - 平台检测、异步编程、日志系统、协程池等 - **Primary Language**: Lua - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-05-15 - **Last Updated**: 2026-07-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # VistaS 🚀

企业级 Lua 桌面应用开发框架
Luvit Runtime + WebView Native UI + Embedded Database

快速开始 · 特性 · 结构 · 构建 · 📚 完整文档

--- ## ✨ 项目简介 **Vistas** 是一个现代化的**跨平台桌面应用开发框架**,基于 **Luvit 运行时**,提供: - 🖥️ **原生 WebView 窗口** - 跨平台桌面应用界面(macOS/Windows/Linux) - 🗄️ **嵌入式数据库引擎** - 基于 CSV 的事务性数据库(CsvDB) - 🔧 **企业级工具库** - 平台检测、异步编程、日志系统、协程池等 ### 📊 核心指标 | 指标 | 数值 | |------|------| | **版本** | v1.0.0 (stable) | | **核心模块** | 3 个(WebView / Database / Commons)| | **源码总量** | ~5,001 行(Database: 1663 + WebView: 1249 + Commons: 1932 + 入口: 157)| | **测试代码** | 17,751 行(Database: 5786 + WebView: 6078 + Commons: 5887)| | **测试套件** | 19 个(Database: 5 + WebView: 6 + Commons: 8)| | **测试通过率** | **100%** ✅ 零 BUG | | **代码示例** | 64 个完整可运行示例 | | **文档规模** | ~8,944 行(含 API / 最佳实践 / 性能优化 / Luvit 参考)| | **生产就绪** | ✅ 是(稳定版)| --- ## 🎯 核心模块 ### 🌐 [WebView](docs/webview/README.md) - 原生窗口与 IPC 通信 > 跨平台原生窗口管理器,支持 JavaScript ↔ Lua 双向 IPC 通信 ```lua local WebView = require('libras.webview') WebView .url("https://example.com") .title("My App") .size(1280, 720) while WebView.run() do end ``` **核心能力**: - 🪟 窗口管理(创建/配置/控制) - 🛠️ 工具栏系统(按钮/托盘/菜单) - 📡 IPC 双向通信(JS ↔ Lua) - 🌉 Bridge JS(前端调用后端) 📘 [查看完整文档 →](docs/webview/WEBVIEW_API.md) --- ### 🗄️ [Database (CsvDB)](docs/database/README.md) - 嵌入式数据库引擎 > 基于 CSV 文件的企业级数据库,支持事务、并发控制、多级缓存 ```lua local Database = require('libras.database') local db = Database.connect('./data/myapp') local users = db:createCollection('users', { columns = { id = { type = 'number', primary_key = true }, name = { type = 'string', required = true } } }) local alice = users:insert({ name = 'Alice' }) print(users:byId(alice.id).name) db:close() ``` **核心能力**: - 📊 完整 CRUD(增删改查/批量操作/分页) - 🔒 ACID 事务(快照隔离/WAL持久化) - ⚡ 多级缓存(L1/L2/BTree索引) - 🔐 安全防护(输入验证/CSV注入防护) 📘 [查看完整文档 →](docs/database/DATABASE_API.md) --- ### 🔧 [Commons](docs/common/README.md) - 企业级通用工具库 > 提供平台检测、JSON处理、异步编程、协程池、进程间通信等基础能力(9 个子模块) ```lua local Platf = require('libras.commons.platf') local UUID = require('libras.commons.uuid') local JSON = require('libras.commons.json') local Log = require('libras.commons.log') local Maps = require('libras.commons.maps') -- 🆕 并发映射 local Pipe = require('libras.commons.pipe') -- 🆕 命名管道 print(Platf.getOS()) -- "macos" local id = UUID.v4() -- "a1b2c3d4-..." Log.info("App started", { ver = "1.0" }) -- 跨进程共享内存(C FFI) local map = Maps.createOrGet("my_map") map:put("key", "value") print(map:get("key")) -- "value" map:destroy() -- 命名管道 IPC Pipe.server("my_pipe", function(msg) print("收到消息: " .. msg) end) ``` **核心能力**: - 🔧 平台检测(OS/Arch/桌面环境) - 🆔 UUID 生成(RFC 4122 v4) - ⚡ JSON 引擎(高性能+LRU缓存) - 📝 日志系统(异步IO/结构化/脱敏/dev-prd双环境配置) - 🔄 Promise/Deferred(链式调用/自动重试) - 🎯 协程池(自动扩缩容/负载均衡) - 🗺️ **并发映射 Maps** (🆕 C FFI 共享内存、跨进程键值存储、FIFO队列) - 🔀 **命名管道 Pipe** (🆕 UV IPC通信、Server/Client模式、自动重连) - 🌐 WebSocket 客户端(心跳保活/指数退避) 📘 [查看完整文档 →](docs/common/COMMONS_API.md) --- ## 🔧 技术栈:Luvit 运行时 > **Vistas** 基于 [Luvit](https://luvit.io) 构建 - 一个高性能的 Lua 异步 I/O 运行时 ### 🤔 什么是 Luvit? [Luvit](https://luvit.io) 是一个基于 **LuaJIT** 和 **LibUV** 的异步 I/O 运行时,类似于 Node.js,但使用 Lua 语言。 **核心特性**: - ⚡ **高性能**: LuaJIT JIT 编译,接近 C 语言速度 - 🔄 **异步非阻塞**: 基于 LibUV 事件循环(与 Node.js 相同) - 📦 **轻量级**: 单一二进制文件,无依赖(~10MB) - 🔒 **安全**: Lua 沙箱机制,适合嵌入式场景 **为什么选择 Luvit(而不是 Node.js)?** - ✅ 更小的内存占用(~20MB vs ~100MB) - ✅ 更快的启动时间(~50ms vs ~500ms) - ✅ 更简单的部署(单文件 vs node_modules) - ✅ Lua 语法简洁,学习曲线平缓 - ✅ 与 C 库的 FFI 集成更自然 --- ### 📥 安装 Luvit(3 种方式) #### 方式 1: 一键脚本(推荐 ⭐) **macOS / Linux / FreeBSD:** ```bash curl -L https://github.com/luvit/lit/raw/master/get-lit.sh | sh ``` **Windows (PowerShell):** ```powershell PowerShell -NoProfile -ExecutionPolicy unrestricted -Command ` "[Net.ServicePointManager]::SecurityProtocol = 'Tls12'; ` iex ((new-object net.webclient).DownloadString('https://github.com/luvit/lit/raw/master/get-lit.ps1'))" ``` > **说明**: 这会自动下载并编译 `lit`(包管理器)和 `luvit`(运行时) #### 方式 2: 验证安装 ```bash luvit --version # 应显示 ≥ 2.15.0 lit --version # 应显示最新版 luvit # 进入 REPL 交互模式 > print("Hello Luvit!") # 测试输出 ``` #### 方式 3: 从源码编译(高级用户) ```bash # 需要 CMake + C 编译器 (GCC/Clang/MSVC) git clone --recursive https://github.com/luvit/luvi.git cd luvi && make regular git clone --recursive https://github.com/luvit/lit.git ./build/luvi lit-src -- make lit-src ``` 📘 [查看完整安装文档 →](https://luvit.io/install.html) --- ### 🧠 Luvit 核心概念速查(5分钟掌握) #### 1️⃣ 模块系统 (require) ```lua -- 加载内置模块 local fs = require('fs') local path = require('path') -- 加载项目模块(相对路径) local myModule = require('./my-module') -- 自动加 .lua 后缀 -- 加载 libras 框架模块 local WebView = require('libras.webview') ``` #### 2️⃣ 异步回调风格 ```lua local fs = require('fs') -- 所有 I/O 操作都是异步的(最后一个参数是回调) fs.readFile('/etc/hosts', function(err, data) if err then return print("Error: " .. err.message) end print(data) -- 文件内容 end) print("这行先执行!") -- 异步特性:这行先打印 ``` #### 3️⃣ 事件发射器 (Emitter) ```lua local Emitter = require('core').Emitter local emitter = Emitter:new() emitter:on('data', function(data) print("收到数据: " .. data) end) emitter:emit('data', 'Hello World!') ``` 📘 [查看 Luvit 完整 API 文档 →](https://luvit.io/api/) · [查看 API 速查手册 →](docs/luvit-refs/quick-ref.md) --- ### 🔗 Vistas × Luvit 模块映射表 以下表格列出了 **Vistas 框架内部使用的 Luvit 核心模块**,以及它们在项目中的用途: | Luvit 模块 | 用途 | 使用位置 | 官方文档 | |-----------|------|---------|---------| | **[core](https://luvit.io/api/core.html)** | 面向对象/事件系统 | libras/commons/log.lua, libras/commons/coros.lua | [→ 查看](https://luvit.io/api/core.html) | | **[fs](https://luvit.io/api/fs.html)** | 文件读写/目录操作 | main.lua, preload.lua | [→ 查看](https://luvit.io/api/fs.html) | | **[path](https://luvit.io/api/path.html)** | 路径拼接/解析 | main.lua, setup-dev.lua | [→ 查看](https://luvit.io/api/path.html) | | **[process](https://luvit.io/api/process.html)** | 进程信息/命令行参数 | setup-dev.lua | [→ 查看](https://luvit.io/api/process.html) | | **[json](https://luvit.io/api/json.html)** | JSON 序列化/反序列化 | preload.lua, libras/commons/json.lua | [→ 查看](https://luvit.io/api/json.html) | | **[utils](https://luvit.io/api/utils.html)** | 工具函数(bind/inherits) | libras/commons/*.lua | [→ 查看](https://luvit.io/api/utils.html) | > 💡 **提示**: 点击"查看"链接可直接跳转到 Luvit 官方 API 文档 > 📘 **深入阅读**: [Luvit 快速参考手册](docs/luvit-refs/quick-ref.md) (提取常用 API 精华) --- ## 🚀 快速开始(3步启动) ### 📋 前置要求 > **Luvit 安装**: 见上方 [🔧 技术栈:Luvit 运行时](#-技术栈luvit-运行时) 章节 | 依赖 | 版本 | 用途 | |------|------|------| | **[Luvit](https://luvit.io)** | ≥ 2.15.0 | Lua 运行时([安装指南](#-安装-luvit3-种方式))| | **Lit** | 最新版 | Lua 包管理器(随 Luvit 一起安装)| | **C 编译器** | Clang/GCC/MSVC | 编译原生 WebView 库 | #### C 编译器安装 **macOS:** ```bash xcode-select --install ``` **Windows:** ```bash # 安装 Visual Studio Build Tools # https://visualstudio.microsoft.com/visual-cpp-build-tools/ ``` **Linux (Debian/Ubuntu):** ```bash sudo apt-get install build-essential libgtk-3-dev libwebkit2gtk-4.0-dev ``` --- ### 🔨 构建命令 使用 **Makefile** 统一管理所有构建流程: ```bash # 查看帮助 make help # 开发模式(检查环境 + 启动应用) make dev # 生产构建(编译 + 打包安装程序) make prd # 自动检测平台并打包 make prd pkg=dmg # 强制 DMG 格式 (macOS) make prd pkg=deb # 强制 DEB 格式 (Linux) make prd pkg=zip # 强制 ZIP 压缩包 (Windows) # 编译原生 WebView 库 make wvc # 清理构建产物 make prd clean # 只清理(不编译) make wvc clean # 清理原生库 ``` #### 高级选项 ```bash # 显示详细构建输出 make prd detail # 组合使用 make prd clean pkg=dmg # 清理后重建 DMG ``` 📘 [查看完整的 Makefile 文档 →](docs/common/COMMONS_BEST.md#构建系统) --- ### 💻 第一个应用(30秒) #### 1️⃣ 克隆并初始化 ```bash git clone https://gitee.com/losyn/vistas.git cd vistas # 安装依赖 & 编译原生库 make wvc ``` #### 2️⃣ 启动开发模式 ```bash make dev # 或直接运行: # luvit setup-dev.lua ``` #### 3️⃣ 修改 `package.lua` 配置 ```lua return { name = "MyApp", version = "1.0.0", dev = { url = "http://localhost:3000", -- 开发服务器 }, prd = { url = "https://app.example.com", -- 生产地址 } } ``` #### 4️⃣ 构建生产版本 ```bash make prd pkg=dmg # macOS: 生成 DMG 安装包 make prd pkg=deb # Linux: 生成 DEB 包 make prd pkg=zip # Windows: 生成 ZIP 压缩包 ``` 输出文件位于 `dist/` 目录。 --- ## 📁 项目结构 ``` vistas/ ├── 📄 main.lua # Luvit 启动器(包路径配置、模块预加载) ├── 📄 desk.lua # 🚀 主应用入口(窗口初始化、信号处理、单实例管理) ├── 📄 package.lua # 应用配置(名称/版本/图标/dev-prd环境URL) ├── 📄 preload.lua # 依赖预扫描器(deps/目录扫描、preload.txt缓存生成) │ ├── 📁 libras/ # 🔧 核心库源码 (~4,844行) │ ├── webview/ # 🌐 WebView 模块 (~1,249行) │ │ ├── init.lua # 入口封装(链式API: url/title/size/tray/menu) │ │ ├── version.lua # 版本管理 (v1.0.0-stable Enterprise) │ │ ├── libc.lua # FFI 绑定层 │ │ ├── proxy.lua # 命令代理 (~364行) │ │ ├── bridge.lua # JS Bridge 注入代码 (~197行) │ │ ├── ipc.lua # IPC 消息路由器 (~131行) │ │ └── contxt.lua # 上下文管理器 (~97行) │ │ │ ├── database/ # 🗄️ Database 模块 (~1,663行) │ │ ├── init.lua # 入口封装 │ │ ├── version.lua # 版本管理 (v1.0.0-stable Security) │ │ ├── csvdb.lua # 核心引擎 CRUD/事务/查询 (~829行) │ │ ├── utils.lua # 工具函数 CSV解析/文件操作 (~637行) │ │ ├── validator.lua # Schema 验证器 (~132行) │ │ └── package.lua # 包元信息 │ │ │ └── commons/ # 🔧 Commons 模块 (~1,932行, 8个子模块) │ ├── platf.lua # 平台检测 (61行) │ ├── uuid.lua # UUID v4 生成 (58行) │ ├── json.lua # JSON 引擎 + LRU 缓存 (353行) │ ├── log.lua # 企业级日志系统 (431行) │ ├── coros.lua # 协程池调度器 (263行) │ ├── wsoks.lua # WebSocket 客户端 (534行) │ ├── maps.lua # 🆕 并发映射 C FFI (108行) │ └── pipe.lua # 🆕 命名管道 IPC (124行) │ ├── 📁 srcs/entries/ # 📂 应用扩展入口 │ ├── traybar.lua # 托盘菜单配置(事件处理器 + 中/英双语菜单) │ └── routers.lua # IPC 路由注册(请求分发) │ ├── 📁 webview-c/ # C 语言原生库 │ ├── build-wvc.lua # 跨平台编译脚本 │ ├── webview-api.h # 公共 API 头文件 │ ├── webview-ipc.c/h # IPC 实现 │ ├── webview-map.c/h # 并发映射实现 │ ├── webview-bar.c/h/m # 工具栏实现 │ ├── webview-osw.c # Windows (Edge WebView2) │ ├── webview-osm.c # macOS (WebKit) │ └── webview-osz.c # Linux (WebKitGTK) │ ├── 📁 assets/ # 🎨 应用资源 │ ├── libs/ # 动态链接库 (webview.dyl/dll/wv64loader.dll) │ ├── icon.png # 应用图标 │ └── dbs/ # 数据库存储目录 │ ├── 📁 tests/ # 🧪 测试套件 (17,751行, 19个文件) │ ├── webview/ # 6个测试文件 (~6,078行) │ ├── database/ # 5个测试文件 (~5,786行) │ └── commons/ # 8个测试文件 (~5,887行) │ ├── 📁 docs/ # 📚 项目文档中心 (~8,944行) │ ├── README.md # ← 文档总览(推荐从这里开始) │ ├── webview/ # WebView 文档集 (~3,878行) │ ├── database/ # Database 文档集 (~1,614行) │ ├── common/ # Commons 文档集 (~1,655行) │ └── luvit-refs/ # Luvit 参考文档 (~1,224行) │ ├── 📄 Makefile # 🔨 构建系统入口 ├── 📄 setup-prd.lua # 🔧 生产构建脚本 ├── 📄 setup-dev.lua # 🔧 开发启动脚本 └── 📄 .gitignore # Git 忽略规则 ``` --- ## 🏗️ 架构设计 ### 技术栈层次 ``` ┌─────────────────────────────────────────────┐ │ 应用层 (Your Code) │ │ srcs/, desk.lua │ ├─────────────────────────────────────────────┤ │ 框架层 (libras/) │ │ ┌─────────┬─────────┬────────────────────┐ │ │ │ WebView │Database │ Commons │ │ │ │ (UI) │ (Data) │ (Utils/Async/Log) │ │ │ └─────────┴─────────┴────────────────────┘ │ ├─────────────────────────────────────────────┤ │ 运行时层 (Luvit + FFI) │ │ ┌─────────────────┬──────────────────────┐ │ │ │ Luvit Runtime │ webview-c (Native) │ │ │ │ (LuaJIT + LibUV)│ (.dyl/.so/.dll) │ │ │ └─────────────────┴──────────────────────┘ │ ├─────────────────────────────────────────────┤ │ 操作系统层 (OS) │ │ macOS / Windows / Linux │ └─────────────────────────────────────────────┘ ``` ### 数据流架构 ``` 用户交互 (WebView) ↓ JavaScript (前端) ↓ ↕ IPC Bridge Lua 后端 (libras.webview) ↓ 业务逻辑 (desk.lua / srcs/) ↓ 数据存储 (libras.database) ↓ CSV 文件 (assets/storage.db) ``` 📘 [查看详细架构设计 →](docs/webview/WEBVIEW_BEST.md) --- ## 📊 平台支持 | 平台 | WebView 引擎 | 包格式 | 支持状态 | |------|-------------|--------|---------| | **macOS** | WebKit (WKWebView) | `.dmg` | ✅ 完全支持 | | **Windows** | MS Edge (WebView2) | `.zip` | ✅ 完全支持 | | **Linux (Debian/Ubuntu)** | WebKitGTK (WebKit2) | `.deb` | ✅ 推荐 | | **Linux (其他发行版)** | WebKitGTK (WebKit2) | `.AppImage` | ✅ 支持 | ### 功能对比矩阵 | 功能 | macOS | Windows | Linux | |------|-------|---------|-------| | 原生窗口 | ✅ | ✅ | ✅ | | 全屏/最小化/最大化 | ✅ | ✅ | ✅ | | 自定义工具栏 | ✅ | ✅ | ⚠️ 部分支持 | | 系统托盘 | ✅ | ✅ | ⚠️ 需 GTK3 | | Dock 徽章 | ✅ | ✅ (任务栏闪烁) | ❌ | | IPC 通信 | ✅ | ✅ | ✅ | | 并发映射 (Maps) | ✅ | ✅ | ✅ | | 命名管道 (Pipe) | ✅ | ✅ | ✅ | | 开发者工具 | ✅ | ✅ | ✅ | > **注**: > - macOS/Windows 已实现**功能对等** > - Linux 受限于 WebKitGTK 版本,部分高级 UI 功能需 GTK 3.x+ > - Maps/Pipe 基于 LibUV,三平台原生支持 --- ## 🧪 测试与质量保证 ### 测试覆盖率 | 模块 | 套件数 | 测试代码 | 通过率 | 状态 | |------|--------|---------|--------|------| | **Database** | 5 | ~5,786 行 | 100% | ✅ 全部通过 | | **WebView** | 6 | ~6,078 行 | 100% | ✅ 全部通过 | | **Commons** | 8 | ~5,887 行 | 100% | ✅ 全部通过 | | **总计** | **19** | **17,751 行** | **100%** | ✅ **零 BUG** | ### 运行测试 ```bash # 运行所有测试 cd tests/commons && luvit run_00_tests.lua cd tests/database && luvit run_00_tests.lua cd tests/webview && luvit run_00_tests.lua ``` 📘 [查看测试最佳实践 →](docs/database/DATABASE_BEST.md#测试策略) --- ## 📚 文档导航 ### 📍 推荐阅读路径 #### 新手入门(~30分钟) ``` [本 README] → [快速开始] → [Hello World 示例] ↓ [Commons 文档] → [WebView 文档] ``` #### 进阶开发(~2小时) ``` [API 参考] → [最佳实践] → [IPC 通信详解] ↓ [性能优化指南] → [架构设计模式] ``` #### 深度定制(~5小时) ``` [C 语言源码] → [FFI 绑定原理] → [自定义扩展] ↓ [数据库引擎实现] → [并发控制机制] ``` ### 📖 文档索引 | 文档 | 内容 | 行数 | 适用人群 | |------|------|------|---------| | **[📚 文档总览](docs/README.md)** | 项目全景、学习路径、模块对比 | ~700+ | 所有人 | | **[🌐 WebView API](docs/webview/WEBVIEW_API.md)** | API参考 & 11个示例 | ~1,892 | WebView 开发者 | | **[🌐 WebView 最佳实践](docs/webview/WEBVIEW_BEST.md)** | 架构设计 & 模式 | ~1,257 | 架构师 | | **[🌐 WebView IPC](docs/webview/WEBVIEW_IPC.md)** | 通信协议详解 | ~1,474 | 前后端联调 | | **[🗄️ Database API](docs/database/DATABASE_API.md)** | API参考 & 11个示例 | ~1,880 | 数据库使用者 | | **[🗄️ Database 最佳实践](docs/database/DATABASE_BEST.md)** | 性能优化 & 设计 | ~1,320 | DBA/架构师 | | **[🗄️ Database 索引](docs/database/DATABASE_IDX.md)** | 错误码表 & 速查 | ~600 | 问题排查 | | **[🔧 Commons API](docs/common/COMMONS_API.md)** | 93个函数文档 (含Maps/Pipe) | ~2,000 | 所有开发者 | | **[🔧 Commons 最佳实践](docs/common/COMMONS_BEST.md)** | 42个设计模式 | ~1,800 | 高级开发 | | **[🔧 Commons 性能](docs/common/COMMONS_PERF.md)** | 基准测试 & 调优 | ~2,200 | 性能工程师 | | **[🔧 C 库文档](webview-c/README.md)** | 原生 API & 编译指南 | ~800+ | 系统程序员 | | **[📘 Luvit 参考](docs/luvit-refs/quick-ref.md)** | Luvit API 速查手册 | ~623 | Luvit 开发者 | --- ## 🔄 版本历史 ### v1.0.0 (2026-05-13) - 初始稳定版 ✨ **新功能**: - 🌐 WebView 原生窗口框架(跨平台) - 🗄️ CsvDB 嵌入式数据库引擎 - 🔧 Commons 企业级工具库 - 📡 IPC 双向通信系统 - 🔨 统一构建系统(Makefile) 🔧 **改进**: - ✅ 100% 测试覆盖率(17,751 行测试代码 / 19 个套件) - ✅ 完整的 API 文档(~8,944 行) - ✅ 64 个可运行代码示例 - ✅ 跨平台支持(macOS/Windows/Linux) - ✅ macOS/Windows 功能对等实现 - ✅ 新增 Maps/Pipe IPC 模块 🐛 **修复**: - 无已知功能性 BUG --- ## 🤝 贡献指南 我们欢迎所有形式的贡献!请遵循以下步骤: 1. **Fork** 本仓库 2. 创建特性分支 (`git checkout -b feature/amazing-feature`) 3. 提交更改 (`git commit -m 'Add amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 开启 **Pull Request** ### 代码规范 - 遵循现有代码风格(Lua 5.1/Luvit 规范) - 为新功能添加测试用例(保持 100% 通过率) - 更新相关文档(API / 示例 / README) - 遵循 [Commit Message 规范](https://www.conventionalcommits.org/) --- ## 🆘 故障排除 ### 常见问题 & 解决方案 #### Q1: `luvit: command not found` **原因**: Luvit 未安装或不在 PATH 中 **解决方案**: ```bash # 重新安装(macOS/Linux) curl -L https://github.com/luvit/lit/raw/master/get-lit.sh | sh # 或手动添加到 PATH export PATH=$PATH:/usr/local/bin # 或你的安装路径 ``` #### Q2: `make wvc` 编译失败 **原因**: 缺少 C 编译器或系统库 **解决方案**: ```bash # macOS xcode-select --install # Ubuntu/Debian sudo apt-get install build-essential libgtk-3-dev libwebkit2gtk-4.0-dev # Windows # 安装 Visual Studio Build Tools: https://visualstudio.microsoft.com/visual-cpp-build-tools/ ``` #### Q3: `require('libras.webview')` 模块找不到 **原因**: 未执行 `make wvc` 或路径错误 **解决方案**: ```bash # 1. 确保在项目根目录 cd /path/to/vistas # 2. 编译原生库 make wvc # 3. 检查 libras/webview/init.lua 是否存在 ls libras/webview/ ``` #### Q4: WebView 窗口不显示或闪退 **排查步骤**: 1. **查看日志**: `cat assets/logs/vistas-*.log` 2. **详细模式**: `make dev detail` (显示更多信息) 3. **检查 URL 配置**: 确保 `package.lua` 中的 URL 可访问 4. **平台特定**: - macOS: 检查是否允许辅助功能权限 - Linux: 检查 `DISPLAY` 环境变量 - Windows: 检查 WebView2 Runtime 是否已安装 #### Q5: 如何调试 Lua 代码? **方法 1: 打印日志** ```lua local Log = require('libras.commons.log') Log.configure({ console = true }) Log.info("变量值:", { x = 123 }) ``` **方法 2: REPL 交互调试** ```bash luvit # 进入 REPL > local WebView = require('libras.webview') > print(WebView.version()) ``` **方法 3: VSCode 调试(需安装 Lua 扩展)** - 推荐: [Lua Debugger](https://marketplace.visualstudio.com/items?itemName=tomblind.lua-debugger) --- ### 获取帮助 | 渠道 | 说明 | |------|------| | 📖 **Luvit 官方文档** | [API 参考](https://luvit.io/api/) · [安装指南](https://luvit.io/install.html) | | 📘 **Vistas 文档中心** | [docs/README.md](docs/README.md) | | 📘 **Luvit 速查手册** | [docs/luvit-refs/quick-ref.md](docs/luvit-refs/quick-ref.md) | | 🐛 **报告 Bug** | [Gitee Issues](https://gitee.com/losyn/vistas/issues) | | 💡 **功能建议** | [Gitee Issues](https://gitee.com/losyn/vistas/issues) (标注 Feature Request) | --- ## 📄 许可证 本项目采用 **MIT 许可证** - 查看 [LICENSE](LICENSE) 文件了解详情。 --- ## 🙏 致谢 - **[Luvit](https://luvit.io)** - 强大的 Lua 运行时 - **[webview](https://github.com/webview/webview)** - 跨平台 WebView C 库 - **[Lit](https://github.com/luvit/lit)** - Lua 编译工具链 ---
### 🚀 开始构建你的下一个桌面应用! **[📖 查看完整文档](docs/README.md)** · **[🌐 WebView 入门](docs/webview/README.md)** · **[🗄️ Database 入门](docs/database/README.md)** · **[🔧 Commons 入门](docs/common/README.md)**
Made with ❤️ by Vistas Team | v1.0.0 | Last Updated: 2026-07-13